我正在建立一个名为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进行一些测试。
谢谢!