JPA(2)--Relationship
- 跟原先Hibernate設定一樣,想清楚Directionality、Cardinality及Ordinality
- 只要能分辦
@OneToOne
@OneToMany
@ManyToOne
@ManyToMany
差在哪就好.....
- 區別Owning side及Inverse Side
Owning Side:記錄Relationship那一方,記有@JoinColumn
Inverse Side:未記有@JoinColumn,在Bidirectional relationship時需加上mappedBy=XXX
- 基本上
@ManyToOne的幾乎都是Owning Side
@OneToMany的幾乎都是Inverse Side
@ManyToMany較為特別,因為在Bidirectional情況下,雙方都可能是Owning Side,但仍需決定哪一方為Owning Side,也就是在Inverse Side那一方加上mappedBy=XXX。
- @ManyToMany時使用@JoinTable取代@JoinColumn
- @OneToMany如果要做Unidirectional relationship的話,也請用@JoinTable
- One to one的情形也可以考慮@Embeddable,不過這情形通常是因為舊有程式有一個很大的Table,不希望一次載入時使用。
沒有留言:
張貼留言