为什么在创建会议室数据库时我们必须显式指定实体,因为已经对实体进行了注释?

时间:2019-02-05 21:53:06

标签: android sqlite android-room

使用Room Persistence Library时,我想知道为什么在创建RoomDatabase时必须显式指定实体,因为实体已经用@Entity标注了。我的意思是我们可以简单地跳过entities批注的@Database属性。

1 个答案:

答案 0 :(得分:0)

它仍然有用。当然,我们可以将其删除,但是:

  • 不能/很方便地指定我们可以在该批注中指定的其他一些内容作为其中的参数。
  • 它描述了意图,这很重要。这意味着其他部分(工具/ IDE)可以检查这是否确实是您要获取的实体,或者是否犯了错误。
  • 作为标记“界面”,与上一点有关,但只是简单地传达其含义并轻松找到它们即可。
  • 工具/ lib /框架可能/可能需要/想要它,因为它们可以生成东西/阴影类/子类或类似的东西。至少用于分析,也与第一个第一点和第二个点有关。

例如,请参见Room来源中的EntityProcessor