@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<Car> cars;
...
}
@Entity
public class Car {
@Id(autoincrement = true)
private Long id;
@Property(nameInDb = "ownerId")
private Long ownerId;
@NotNull
@Property(nameInDb = "carname")
private String carName;
}