具有AutoValue的Android Room Persistence库实体

时间:2017-07-02 09:57:12

标签: android android-room auto-value

是否可以在同一个POJO上同时使用Room persistence library@EntityAutoValue@AutoValue和构建器?我该怎么办?

5 个答案:

答案 0 :(得分:14)

AFAIK,截至1.0.0-alpha3,这是不可能的。房间想要田地; AutoValue不会公开字段。密切关注this feature request以了解此领域的进展情况。

答案 1 :(得分:3)

此功能将在2.1.0会议室中提供 https://issuetracker.google.com/issues/62408420#comment27

答案 2 :(得分:0)

完成此任务后,他们显然增加了支持。我认为将来的Room版本(可能是androidx.room版本2.0.0)可能会出现这种情况。 仍然没有合并为2.0.0-beta1的一部分

答案 3 :(得分:0)

发布于2.1.0-alpha01!

请注意,您必须添加@CopyAnnotations批注才能使其正常工作

  

自动值:现在,Room支持将带自动值注释的类声明为实体和POJO。现在可以在带有自动值注释类的抽象方法中声明Room注释@ PrimaryKey,@ ColumnInfo,@ Embedded和@Relation。请注意,这些注释还必须带有@CopyAnnotations以便Room正确理解它们。

see the release notes

答案 4 :(得分:0)

现在可以使用 Room 数据库 2.1.0。

您可以通过使用@PrimaryKey、@ColumnInfo、@Embedded 和@Relation 注释抽象类方法来实现这一点。抽象类必须用@Autovalue 注释。