子-孙-曾孙关系

qxgroojn  于 2021-07-24  发布在  Java
关注(0)|答案(0)|浏览(170)

我有4个实体。除父母和曾孙外,每个人都有一对多或一对多的关系。
是否可以通过“entitya”存储库在单个存储中保存以下关系?
我在本地尝试了这个方法,创建了一个json版本来保存所有嵌套的信息,但似乎发生的是,我只能通过entitya存储库在一次保存中保存entitya和entityb,并且必须通过entityc存储库在一个单独的调用中保存entityc和entityd。
我用cascade.all处理了所有的onetomany关系,甚至用cascade.merge+cascade.persist尝试了一下,仍然得到了相同的错误。
我得到的错误是:

detached entity passed to persist: model.EntityC

我只是通过执行entitya.setentitybs()->entityb.setentitycs()->entityc.setentityds()来设置每个实体的子实体
在这种情况下,最好的做法是什么?从实体的一次电话中存钱是可能的,还是最好的方法?

@Entity
public class EntityA {

    //...

    @OneToMany(mappedBy="")
    private Set<EntityB> entityBs;

    // getters and setters
}
@Entity
public class EntityB {

    //...
    @ManyToOne
    @JoinColumn(name="entityA_id", nullable=false)
    private EntityA entityA;

    @OneToMany(mappedBy="")
    private Set<EntityC> entityCs;

    public EntityB() {}

    // getters and setters
}
@Entity
public class EntityC {

    //...

    @OneToMany(mappedBy="")
    private Set<EntityD> entityDs;

    @ManyToOne
    @JoinColumn(name="entityB_id", nullable=false)
    private EntityB entityB;

    public EntityC() {}

    // getters and setters
}
@Entity
public class EntityD {

    //...

    @ManyToOne
    @JoinColumn(name="entityC_id", nullable=false)
    private EntityC entityC;

    public EntityD() {}

    // getters and setters
}

提前感谢您对此的任何回复

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题