凡是配置实体间关系的标签,例如:@ManyToOne、@OneToMany、@ManyToMany、@OneToOne等,都可以配置mappedBy属性。mappedBy表示该属性是反向属性,与另一边实体类(一般可以用泛型表示)的mappedBy制定的属性是对应的。
http://blog.youkuaiyun.com/lmb55/article/details/46566641中以舰船管理为例学习了单边的一对一关系,下面我们在上例的基础上继续学习双边的一对一关系。使用mappedBy为Ship舰船实体类添加另一边的一对一关系。
修改Ship代码,添加一对一的Ship类型属性captionShip,表示某船长管理的船只,并为其添加相应的getter、setter方法。船长和船只是一对一的关系,用@OneToOne来配置,使用mappedBy配置该属性为反向属性,具体的配置代码位于另一边实体类(ship类)的caption属性中。
@OneToOne(mappedBy="caption") //使用反向控制
private Ship captionShip;
public Ship getCaptionShip() {
return captionShip;
}
public void setCaptionShip(Ship captionShip) {
this.captionShip = captionShip;
}