我们有两个 DAO 实体,Customer
和Record
.
Record 有两个客户列表,typeA
并且typeB
.
我们每个类模式都有一个表,所以有一个连接表RECORD_X_CUSTOMER
。此表有RECORD_ID
、TYPEA_ID
和列TYPEB_ID
。
问题是我们在这个连接表中有一些条目在同一表行中同时包含 atypeA id
和 a 。typeB id
在应用程序中,如果我们删除了一个 typeA 并且记录中还有一个 typeB,那么它们都将被删除,反之亦然。有没有办法让 Hibernate 使列无效,而不是删除整个表行?
以下是类注释:
@ManyToMany(cascade=CascadeType.ALL)
@JoinTable(
name="TYPEA_X_CUSTOMER"
, joinColumns={
@JoinColumn(name="RECORD_ID", referencedColumnName="ID")
}
, inverseJoinColumns={
@JoinColumn(name="TYPEA_ID", referencedColumnName="ID")
}
)
@BatchSize(size=1000)
protected List<Customer> typeA;
@ManyToMany(cascade=CascadeType.ALL)
@JoinTable(
name="TYPEB_X_CUSTOMER"
, joinColumns={
@JoinColumn(name="RECORD_ID", referencedColumnName="ID")
}
, inverseJoinColumns={
@JoinColumn(name="TYPEB_ID", referencedColumnName="ID")
}
)
@BatchSize(size=1000)
protected List<Customer> typeB;