【发布时间】:2020-11-08 11:07:39
【问题描述】:
如果我们在 Room 中有 @Entity,其中有复杂的对象作为字段,我们可以使用 2 种方法:
@Embedded - 据我了解,如果您使用此注释标记字段,那么 Room 会将对象内部的所有字段保存为实体本身的字段,然后正确检索所有内容。
@TypeConverters - 在这里我们编写自己的转换器,在大多数情况下归结为通常将对象解析为 Json 字符串。
其实问题:
根本区别是什么?为什么不到处写@Embedded 而不用担心转换器呢?什么时候自己写转换器比较好,什么时候用@Embedded比较好,这些方法的优缺点是什么?
【问题讨论】:
-
这些是苹果和梨……这应该是明显的区别。你对
@TypeConverter的假设对我来说似乎是错误的(因为处理 JSON 与 NoSQL 一样有效)。 -
这就是我问这个问题的原因。我不知道区别,我认为我对这些注释的了解是错误的
标签: java android kotlin android-room