如何在Hibernate中注释自引用复合主键对象?

时间:2019-04-02 06:37:51

标签: hibernate orm

我正在建立一个名为Category的对象,该对象具有由名称和可为空的父自引用组成的复合主键。

通常,我会对类别名称及其父级进行哈希处理以创建唯一键,或者将这些列标记为复合唯一键,并且父列会自引用同一张表。

我想避免同一父级重复类别,但允许在不同父级下重用类别名称。

如果我使用Embeddable PK,如何在可嵌入对象中引用使用此可嵌入键对象的对象?

red box has the constraint violation

@Entity
class Guild
        implements Serializable {

    @EmbeddedId
    private GuildEmbeddedPK id;

    @Column (nullable = false)
    private String note;

    @ManyToOne
    private Guild parent;

    @OneToMany
    private List<Guild> children;

    public
    Guild() {
    }
}

@Embeddable
public
class GuildEmbeddedPK implements Serializable {

    @Column(nullable = false)
    private String name;

    @ManyToOne
    Guild guild;
}

我知道此代码不起作用,但我需要尝试使其与可重用名称一起使用,但不能在同一父项下使用。我正在将旧的设计移植到Hibernate进行一些测试。

谢谢!

0 个答案:

没有答案