Android Room持久化库:使用AutoValue创建实体

13

有没有可能在同一个POJO中同时使用Room持久化库@EntityAutoValue@AutoValue和builder?应该如何操作?


3
我在这方面遇到了问题,并提交了此功能请求,据我所知,在1.0.0-alpha3版本中仍然不可能实现。 - CommonsWare
@CommonsWare 谢谢。如果您将其发布为答案,我会接受它。 - Weizhi
在功能请求中添加了评论,@CommonsWare除了功能请求中的评论外,您还有其他消息吗? - JoseF
@JoseF:不好意思,没有。 - CommonsWare
我看到它在2017年11月28日从优先级3升级到优先级2。 - Bryon Nicoson
5个回答

15
据我所知,截至于1.0.0-alpha3版本,这是不可能的。Room需要字段;而AutoValue则不会暴露字段。关注该功能请求以获取在此领域的进展情况。

6

1

发布于2.1.0-alpha01!

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

Auto Value: Room现在支持将AutoValue注释的类声明为实体和POJO。Room注释@PrimaryKey、@ColumnInfo、@Embedded和@Relation现在可以在自动值注释的类的抽象方法中声明。请注意,这些注释也必须搭配@CopyAnnotations使用,以便Room能够正确理解它们。

查看发布说明


0

在这个任务之后,显然他们添加了支持。我认为在未来的 Room 发布中将会有可能实现(可能是 androidx.room 版本 2.0.0)。 但它仍未作为 2.0.0-beta1 的一部分合并。


0

现在,使用Room数据库2.1.0版本可以实现这一点。

您可以通过使用@PrimaryKey、@ColumnInfo、@Embedded和@Relation注释抽象类方法来实现此功能。抽象类必须使用@Autovalue进行注释。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接