0
更新我有一個雙向多對許多類:休眠雙向多對多與二級緩存
public class A{
@ManyToMany(mappedBy="listA")
private List<B> listB;
}
public class B{
@ManyToMany
private List<A> listA;
}
現在我保存listA的加入B:
b.setListA(listA);
這一切工作正常直到我打開集合a.ListB的二級緩存。現在,當我更新B中的列表時,a.listB不會更新並且保持陳舊。
你如何解決這個問題?
感謝, 德韋恩
這是怎麼回事,因爲我得到一個客戶,他們發送列表投入B.即我需要調用b.setListA更新要硬(listA的)。 – 2010-06-01 23:15:35
@DD你如何爲'listA'的所有元素設置對'b'的引用?我不會保留上述解決方案是做到這一點的唯一方法,但如果您不這樣做,您的雙向關聯會被打破,這可能會解釋您看到的奇怪行爲。 – 2010-06-01 23:24:17
我沒有更新兩端的關聯......它似乎除了緩存外都可以正常工作。我會怎麼做,否則,如果我不想使用加減法(這將是很難的,因爲我正在處理更新列表而不添加/減少對象)?我想我可以使用單向關聯並在另一端使用查詢。 另外我真的不明白爲什麼你需要更新兩端,如果只有一端被持久? hibernate是否意識到當你刷新時你已經改變了反面,即使我沒有調用保存在那個特定的對象上? – 2010-06-02 08:29:41