我希望定義一個@Embeddable名為Frame. 這個類的生命周期與一個@Entity被調(diào)用有關(guān),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 有一個樹結(jié)構(gòu),這意味著每個 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屬性?目前我只得到無限循環(huán),因為可嵌入對象通過 parentFrame 屬性嵌入自己......
1 回答

白板的微信
TA貢獻(xiàn)1883條經(jīng)驗 獲得超3個贊
想法是錯誤的。沒有辦法引用embeddable
內(nèi)部本身,即在內(nèi)部有一個embeddable
屬于embeddable
自身類型的字段(Frame
在我們的例子中)。
Hibernate 無法處理這樣的結(jié)構(gòu),因為它會試圖嵌入自身等等直到無窮大。
Frame
必須更改為實體才能將此引用保留到其父級Frame
。
添加回答
舉報
0/150
提交
取消