Android GreenDao 3.3.0 关联表 (二)

2020-06-01  本文已影响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个教师,对应多个关系,在关系里,再关联学生

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

上一篇 下一篇

猜你喜欢

热点阅读