【发布时间】:2018-07-03 07:15:14
【问题描述】:
我有这两个类:
public class ClassA extends [...] implements [...] {
@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable(name = JOIN_TABLE_NAME,
joinColumns = @JoinColumn(name = COLUMN_REF_A, referencedColumnName = COLUMN_ID_A),
inverseJoinColumns = @JoinColumn(name = COLUMN_REF_B, referencedColumnName = COLUMN_ID_B))
private List<ClassB> fieldClassB;
}
public class ClassB extends [...] implements [...] {
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "fieldClassB", cascade = CascadeType.ALL)
private List<ClassA> fieldClassA;
}
当我删除 ClassB(通过 spring data jpa 存储库)时,Hibernate 也会删除 ClassA 的实例,而我只想删除 JOIN_TABLE_NAME 表中的行(另一个问题是,由于到级联模式,删除ClassA实体也会删除这些ClassA引用的其他ClassB。
有没有什么方法可以处理这个问题,而不必创建连接实体并将@ManyToMany 注释替换为引用新连接实体的@OneToMany?
【问题讨论】:
标签: java spring hibernate spring-data-jpa