美文网首页
greendao 创建一对一,一对多关系

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

作者: Tenny1225 | 来源:发表于2015-12-07 11:44 被阅读4740次

    网上对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());
    //执行插入操作
    

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

    相关文章

      网友评论

          本文标题:greendao 创建一对一,一对多关系

          本文链接:https://www.haomeiwen.com/subject/vslehttx.html