java集合仍然存在,但不会出现在另一侧
我在Hibernate中有一段多对多的关系。当我把一个物体和两个物体联系起来时,物体就是物体。getObjectB()成功返回两个元素(包括数据库),但是objectB。getObjectA()不返回objectA。只有在新的课程开始后才有效
@Entity
public class ObjectA implements java.io.Serializable {
private List<ObjectB> objectsB;
...
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinTable(name = "db_objectA_objectB", joinColumns = {
@JoinColumn(name = "idObjectA", updatable = false)}, inverseJoinColumns = {
@JoinColumn(name = "idObjectB", updatable = false)})
public List<ObjectB> getObjectsB() {
return objectsB;
}
public void setObjectsB(List<ObjectB> objectsB) {
this.objectsB = objectsB;
}
}
@Entity
public class ObjectB implements java.io.Serializable {
private List<ObjectA> objectsA;
...
@ManyToMany(fetch = FetchType.EAGER, mappedBy = "objectsB", cascade = CascadeType.ALL)
public List<ObjectA> getObjectsA() {
return objectsA;
}
public void setObjectsA(List<ObjectA> objectsA) {
this.objectsA= objectsA;
}
}
# 1 楼答案
保持关系双方的一致性是应用程序代码的责任,而不是Hibernate的责任。在JPA 2.0规范中,这是通过以下文字来说明的: