我有一个双向的多对多课程:
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不会更新并保持陈旧状态。
你如何解决这个问题?
谢谢, 德韦恩
答案 0 :(得分:2)
您是否正确设置A和B之间的双向链接的两侧?一种典型的方法是使用这样的防御方法:
public class B {
@ManyToMany
private List<A> listA;
public void addToListA(A a) {
this.listA.add(a);
a.getListB().add(this);
}
public void removeFromListA(A a) {
this.listA.remove(a);
a.getListB().remove(this);
}
}