Java 收集持续存在,但不';t出现在另一边

Java 收集持续存在,但不';t出现在另一边,java,hibernate,many-to-many,Java,Hibernate,Many To Many,我在Hibernate中有一个多对多关系。当我将一个objectA与两个objectsB关联时,objectA.getObjectB()成功返回两个元素(包括数据库),但objectB.getObjectA()不返回objectA。只有在新的课程开始后才有效 @Entity public class ObjectA implements java.io.Serializable { private List<ObjectB> objectsB; ...

我在Hibernate中有一个多对多关系。当我将一个objectA与两个objectsB关联时,objectA.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;
    }
}
@实体
公共类ObjectA实现java.io.Serializable{
私人名单对象b;
...
@ManyToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
@JoinTable(name=“db\u objectA\u objectB”,joinColumns={
@JoinColumn(name=“IDObject”,updateable=false)},inverseJoinColumns={
@JoinColumn(name=“idObjectB”,updateable=false)})
公共列表getObjectsB(){
将反对意见退回给某人;
}
public void setObjectsB(列出objectsB){
this.objectsB=objectsB;
}
}
@实体
公共类ObjectB实现java.io.Serializable{
私人名单对象a;
...
@ManyToMany(fetch=FetchType.EAGER,mappedBy=“objectsB”,cascade=CascadeType.ALL)
公共列表getObjectsA(){
返回对象a;
}
公共无效setObjectsA(列表objectsA){
this.objectsA=objectsA;
}
}

保持关系双方的一致性是应用程序代码的责任,而不是Hibernate的责任。在JPA 2.0规范中,这是通过以下文字来说明的:

请注意,应用程序负责 维护运行时关系的一致性,例如, 确保一个系统的“一”面和“多”面是双向的 当应用程序 在运行时更新关系


这可能是hibernate的行为。它不会同时填充实体关系的两个方向,只填充您查询它的一个方向,它会抛出任何异常吗?还是返回空值?