@Entity
public class Troop {
@OneToMany(mappedBy="troop")
public Set<Soldier> getSoldiers() {
...
}
@Entity
public class Soldier {
@ManyToOne
@JoinColumn(name="troop_fk")
public Troop getTroop() {
...
}
我做這樣的事情:休眠:哪一個是更好的方式:保存源或目標在多對一的關聯
Troup t = new Troup();
t.getSoldiers().add(soldier);
這節省了部隊和士兵也。由於士兵是所有者,所以還增加了外鍵。但哪一個是更好的辦法,我的意思是使用節能託普或士兵:
Troop t = ..... // Get troop from session
Soldier s = new Soldier();
s.setTroop(t);
「持久性提供不需要搜索的變化來遍歷集合」 收集將已經得到走過,當我們做t.getSoldiers()。添加(士兵) – Ankit
酷,不知道。已經放棄了最後部分的要點。我不太清楚Hibernate如何跟蹤引擎蓋下的髒東西。如果你知道一個很好的點對點參考,我會很感激鏈接。 – kostja
從經驗來看,hibernate管理髒實體的方式並不是你應該關心的。它的混亂和吃飢餓的人一樣的記憶吃在培根自助餐,但它工作得很好,只要你的收藏不太大(<50,000件物品)。對於插入它並不重要,但您應仔細考慮從哪個方向調用選擇/更新,以避免n + 1選擇問題。 – JamesENL