如何解决持久的父母 - 子女 - 孙子女 - 曾孙关系
我有 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 举报,一经查实,本站将立刻删除。