簡體   English   中英

一對多關系不同的選擇

[英]One to many relation different option

我正在使用休眠模式開發示例應用程序。 它進行得很順利,但是我有一個關於一對多關系的小查詢。 我已經看到了兩種指定關系的方式

@OneToMany(cascade = CascadeType.ALL)
@JoinTable(name = "STUDENT_PHONE", joinColumns = { @JoinColumn(name = "STUDENT_ID") },     inverseJoinColumns = { @JoinColumn(name = "PHONE_ID") })
public Set<Phone> getStudentPhoneNumbers() { 
return this.studentPhoneNumbers;
}

另一種方法是

@OneToMany(fetch=FetchType.EAGER)
@JoinColumn(name="PERSON_ID", nullable=false)
public Set<Address> getAddresses() {
    return addresses;
}

哪種方法更有效以及何時使用哪種方法。

第二個連接可能效率更高,因為它需要的連接比第一個連接少。

但是它通過在地址表中要求外鍵將多面(地址)耦合到另一面(人)。 這與關聯是單向的(地址在對象模型中不知道它的人)這一事實相矛盾。

這就是為什么第二個是單向一對多關聯的默認設置的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM