greendao 创建一对一,一对多关系

网上对greendao介绍比较少,且大多都是对同一篇文章的转载,其实我也是小白,在实际项目中对于greendao创建关系运用过程中出现了一些问题,比如在我的项目中所有实体类的primaryKey都是objectId,发现使用网上的教程,生成的实体文件和dao文件会出错,原因是字段命名冲突,例如我有这样一个需求,一个user实体,他有个friends的list,那我是怎么创建关系的呢?

Entity user = schema.addEntity("User");
Property id =  user.addStringProperty("objectId").primaryKey().getProperty();
user.addToMany(user,id,"friends");

此时就会发现,User实体中只有getFriends()这个方法,那么怎么插入friends数据呢,是不行的,是因为greendao在建立关系时使用的addToMany()方法的第二个参数的字段名建立一个外键,id的字段名是objectId,而此时user的primarykey字段名也是objectId,greendao扫描到了objectId已经存在,所以就不在创建外键了,ok,那怎么解决呢

Entity user = schema.addEntity("User");
Property id =  user.addStringProperty("objectId").primaryKey().getProperty();
user.addToMany(user,user.addStringProperty("friendId").getProperty(),"friends");

这时你就会发现在user实体中多了个userId字段,如果你要插入数据执行

User user1 = new User("123);
//执行插入操作,此处省略
User user2 = new User("456");
user2.setFriendId(user1.getObjectId());
//执行插入操作

这是一对多关系的建立,一对一和这个相识

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 大神们都说GreenDao性能最好,使用方便,最近在做一个项目,刚好用到操作本地数据库,so机缘巧合,开始学习Gr...
    冯奕欢阅读 10,861评论 2 7
  • GreenDao 介绍:greenDAO是一个对象关系映射(ORM)的框架,能够提供一个接口通过操作对象的方式去操...
    宁静世界阅读 693评论 0 1
  • 概述 最近打算研究一下Android的ORM框架,即对象关系数据映射,ORM框架能很好的帮我们简化数据库操作逻辑,...
    嘎啦果安卓兽阅读 1,894评论 0 10
  • 简介 GreenDao是一个简化数据库开发的ORM(Object Ralativational Mapping)来...
    3Q竹林阅读 6,387评论 0 3
  • 概述 最近打算研究一下Android的ORM框架,即对象关系数据映射,ORM框架能很好的帮我们简化数据库操作逻辑,...
    lbhl阅读 1,460评论 1 1

友情链接更多精彩内容