7.关系映射(待续)

这里指的是对象之间在数量上的关系,包括一对一、一对多、多对一、多对多四种。

单向与双向映射是编程角度的区别,在数据库角度讲,是没有区别的(即单向的数据库表与双向的数据库表是一模一样的)

 

铁律1:双向关联必设mappedBy!
铁律2:双向关联在编程时必须先设置好对象之间的关联关系

一对一单向外键关联@OneToOne @JoinColumn
一对一双向外键关联@OneToOne(mappedBy="***")

一对一单向主键关联@OneToOne @PrimaryKeyJoinColumn  //很少用
一对一双向外键关联@OneToOne(mappedBy="***") //很少用

联合主键关联(一对一单向外键关联的特例)@OneToOne @JoinColumns({@JoinColumn(name="", referencedColumnName=""), @JoinColumn(name="", referencedColumnName="")})

组件映射 @Embedded

多对一单向映射@ManyToOne
一对多单向映射@OneToMany @JoinColumn(name="***")//一定要有这个注解,否则会当做多对多来处理

一对多、多 对一双向关联:@OneToMany(mappedBy="***") @ManyToOne

多对多单向关联:@ManyToMany

多对多单向关联:@ManyToMany @ManyToMany(mappedBy="***")

 

OneToOne/OneToMany/ManyToOne/ManyToMany都有两个共同的元素:cascade(影响CUD), fetch(影响R)

posted @ 2015-06-27 22:15  cbirdq  阅读(97)  评论(0编辑  收藏  举报