Android GreenDao 3.3.0 关联表 (二)

入门:https://www.jianshu.com/p/adfe318fd96d
数据库升级:https://www.jianshu.com/p/adfe318fd96d

前面介绍了基本的集成,这里说一下如何建立关联表


首先是一对一关联,这里使用的是ToOne注解

举个例子,A和B是一对一关联,A代码如下:

@Entity
public class A {

    @Id(autoincrement = true)
    Long aid;

}

B代码中建立与A的关联:

@Entity
public class B {

    @Id(autoincrement = true)
    Long bid;

    Long aid;

    @ToOne(joinProperty = "aid")
    private A a;
}

这样查出来的B,就自动带了对应A的实例

注意,向数据库写入B的时候,不需要填充A的实例,加入对应的aid就行了

接下来是一对多,例如我有很多钱:

@Entity
public class 我 {

    @Id(autoincrement = true)
    Long id;

    @ToMany(referencedJoinProperty = "masterId")
    private 钱 钱List;
}

钱的写法如下:

@Entity
public class 钱 {

    @Id(autoincrement = true)
    Long id;

    Long masterId;
}

写入时只用在钱里加入对应的masterId就可以,这样我就有很多钱了

最后一种是多对多,这里稍微麻烦一点,不能直接写多对多,需要有个中转

例如教师和学生,一个教师有多个学生,一个学生也有多个教师

这里不能直接一个教师表和学生表进行关联,需要在加入一张关系表

A教师建立一个1对多的关系表关联,可以理解为1个教师,对应多个关系,在关系里,再关联学生

学生也是一样,用这种方式来间接实现多对多关联

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。