android–Room中的一对多关系

android–Room中的一对多关系,第1张

概述我过去一直在为大多数项目使用SugarDB.它很容易使用并且满足了我的大多数要求,但由于该项目已被放弃,因此决定寻找替代方案,而房间似乎是最佳选择.然而,一些基本的东西在Room中相当混乱.MyObject使用Gson填充来自Web服务的数据,例如链接到其他对象.例如,请考虑以下类:@Entityp

我过去一直在为大多数项目使用SugarDB.它很容易使用并且满足了我的大多数要求,但由于该项目已被放弃,因此决定寻找替代方案,而房间似乎是最佳选择.

然而,一些基本的东西在Room中相当混乱. My Object使用Gson填充来自Web服务的数据,例如链接到其他对象.例如,请考虑以下类:

@Entitypublic class TestModel{    @PrimaryKey(autoGenerate = true)    private int ID;    private String name;    private String age;    private List<Book> issuedBooks;}public class Book{    private String Title;    private int ISBN;}

现在,如果我的第一个类被注释为实体,那么这会自动将其中引用的类视为实体吗?

如果我保存TestModel的对象,它会将带有它的Books列表保存到数据库中吗?

解决方法:

我想你可以这样做.

@Entitypublic class TestModel {    @PrimaryKey    public int ID;          // TestModel ID    public String name;    public String age;}@Entitypublic class Book {    @PrimaryKey    public int ID;          // Book ID    public int testModelID; // TestModel ID    public String Title;    public int ISBN;}public class TestModelWithBooks {   @Embedded   public TestModel testModel;   @Relation(parentColumn = "ID", entityColumn = "testModelID", entity = Book.class)   public List<Book> books;}

对于他们的Dao,你可以这样写.

@Daopublic interface TestModelDao {    @query("SELECT * FROM TestModel")    public List<TestModelWithBooks> loadTestModelsWithBooks();}
总结

以上是内存溢出为你收集整理的android – Room中的一对多关系全部内容,希望文章能够帮你解决android – Room中的一对多关系所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1116268.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存