我希望定义一个@Embeddable名为Frame. 这个类的生命周期与一个@Entity被调用有关,Master它拥有一个被注释为 a 的帧列表@ElementCollection,即@Entitypublic class Master extends ObjectWithId { private List<Frame> frameList; @ElementCollection @OrderColumn @OrderBy( "treeStage ASC" ) public List<Frame> getFrameList() { return frameList; }}@Embeddable@Access( AccessType.PROPERTY )public class Frame { private int treeStage; @Basic @Column( nullable = false ) public int getTreeStage() { return treeStage; }}但是正如建议的那样,frameList 有一个树结构,这意味着每个 Frame 除了根之外都有一个父级。因此,我想向 Frame 添加一个属性,该属性指向其父级,如下所示:@Embeddable@Access( AccessType.PROPERTY )public class Frame { private Frame parentFrame; private int treeStage; @Basic @Column( nullable = false ) public int getTreeStage() { return treeStage; }}我如何注释parentFrame属性?目前我只得到无限循环,因为可嵌入对象通过 parentFrame 属性嵌入自己......
1 回答
白板的微信
TA贡献1883条经验 获得超3个赞
想法是错误的。没有办法引用embeddable
内部本身,即在内部有一个embeddable
属于embeddable
自身类型的字段(Frame
在我们的例子中)。
Hibernate 无法处理这样的结构,因为它会试图嵌入自身等等直到无穷大。
Frame
必须更改为实体才能将此引用保留到其父级Frame
。
添加回答
举报
0/150
提交
取消