坚持引用一个的两个实体

时间:2012-11-27 18:03:27

标签: hibernate jpa

enter image description here

我有三个实体,如图所示。

我试图坚持这个伪代码

中显示的对象
EA = new EA
EB = new EB
EC = new EC
EB.link(EA)
EC.link(EA)
persist(EB)
persist(EC)

当持久化实体B时,实体A得到持久化但实体C无法持久存在以下错误:

java.lang.IllegalStateException: org.hibernate.TransientObjectException: object is an unsaved transient instance - save the transient instance before merging: 

我控制实体C.我不想改变实体A和B中的任何内容。如何保持所有这些实体的持久性?

2 个答案:

答案 0 :(得分:1)

我认为这会奏效:

EA = new EA
EB = new EB
EC = new EC
EB.link(EA)
persist(EB)
EC.link(EB.getEA())
persist(EC)

答案 1 :(得分:0)

enter image description here

我必须改变模型才能很好地工作。

伪代码是

EA=new EA
EB=new EB
EC=new EC
EB.link(EA)
EB.link(EC)
persist(EB)