我有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
}
提前感谢您对此的任何回复
暂无答案!
目前还没有任何答案,快来回答吧!