05,关系注解

@ToOne

一对一,定义与另一个实体(一个实体对象)的关系
joinProperty,表中相关实体的属性名称
比如每个用户都有一个对应Picture属性,需要一个pictureId代表这个Picture属性,
通过@ToOne(joinProperty = "XXXX")指定pictureId,
在数据表中则会有pictureId这一列作为外键,与Picture数据表建立联系,
如果你没有指定pictureId,
greenDAO也会在数据表中生成一列属性其作用与指定的pictureId相同,
而实体类中则可以使用User的Picture属性,代码如下:

@Entity
public class Teacher {
  @Id
  private Long id;
  private String name;
  private Long pictureId;
  @ToOne(joinProperty = "pictureId")
  private Picture picture;
....
}
@ToMany

一对多,定义与多个实体对象的关系
referencedJoinProperty
//JoinProperty将源表列索引->目标列
一对多的关系,定义了一个实体对象对应着多个实体对象,比如一个老师对应多个Student,
在建立数据表示会在目标实体(即一对多的那个多的实体类)的数据表中建立外键,
指向源实体类(一对多中的一那个实体类)的数据表。
目标数据表中的外键属性由

@ToMany(referencedJoinProperty = "XXXX")指定。
@Entity
public class Teacher {
  @Id
  private Long id;
  private String name;
  private Long pictureId;
  @ToOne(joinProperty = "pictureId")
  private Picture picture;
  @ToMany(referencedJoinProperty = "ownerId")
  private List cars;
  ...
}
@Entity
public class Car {
  @Id(autoincrement = true)
  private Long id;
  @Property(nameInDb = "ownerId")
  private Long ownerId;
  @NotNull
  @Property(nameInDb = "carname")
  private String carName;
}
参考文献

http://greenrobot.org/greendao/documentation/relations/

你可能感兴趣的:(05,关系注解)