为了账号安全,请及时绑定邮箱和手机立即绑定

Hibernate - @Embeddable 与自身的父关系

Hibernate - @Embeddable 与自身的父关系

富国沪深 2021-08-04 16:39:34
我希望定义一个@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


查看完整回答
反对 回复 2021-08-04
  • 1 回答
  • 0 关注
  • 183 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信