1

感谢您提前查看此问题。

基本上,我有几个实体,这就是关系。

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对象。我更改了 的bListA并将其保存在会话 1 中。所以现在,A会话 2 中的对象是陈旧的,我保存了一个对象C,该对象A在其陈旧状态下具有对象的引用。

我想知道为什么不使用cascade = {PERSIST, MERGE}将其放入@ManyToMany注释中,保存对象C也会将过时状态更新A回数据库,所以我A在会话 1 中对对象所做的更改就消失了?

4

0 回答 0