感谢您提前查看此问题。
基本上,我有几个实体,这就是关系。
表A
---< 表AB
>---- 表B
和实体类:
class A {
@ManyToMany
@JoinTable(name = "A_B", joinColumns = { @JoinColumn(name = "A_ID",nullable = false) }, inverseJoinColumns = { @JoinColumn(name = "B_ID", nullable = false) })
private List<B> bList;
}
class B {
@ManyToMany(mappedBy = "bList")
private List<A> aList;
}
现在我有 2 个会话访问同一个A
对象。我更改了 的bList
值A
并将其保存在会话 1 中。所以现在,A
会话 2 中的对象是陈旧的,我保存了一个对象C
,该对象A
在其陈旧状态下具有对象的引用。
我想知道为什么不使用cascade = {PERSIST, MERGE}
将其放入@ManyToMany
注释中,保存对象C
也会将过时状态更新A
回数据库,所以我A
在会话 1 中对对象所做的更改就消失了?