问题描述
我有 4 个实体。除了父母和曾孙之外,每个人都有多对一或一对多的关系。
是否可以通过在单个保存中保存以下关系,在这种情况下,“EntityA”存储库是什么?
我在本地尝试通过创建一个 json 版本来保存其中包含所有嵌套信息,但似乎发生的是我只能通过 entityA 存储库在一次保存中保存 EntityA 和 EntityB 并且不得不保存 EntityC和 EntityD 通过 EntityC 存储库单独调用。
我在所有 OnetoMany 关系上都使用了 CASCADE.ALL,甚至用 CASCADE.MERGE + CASCADE.PERSIST 尝试过,但仍然出现相同的错误。
我得到的错误是:
detached entity passed to persist: model.EntityC
我通过简单地执行 EntityA.setEntityBs() -> EntityB.setEntityCs() -> EntityC.setEntityDs() 来设置每个子实体
在这种情况下,最佳实践是什么?在 EntityA Repo 的单个调用中进行保存是可能的,还是最好的方法?
@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
}
预先感谢您对此的任何回复
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)