我正在为商店注释我的域模型(使用 JPA 2,使用 Hibernate 提供程序)。
在店里每件产品都可以有一个Category
。每个类别都可以分配到几个超类别和子类别,这意味着类别“蜡烛”可以将“餐厅”和“装饰”作为父类,将“普通蜡烛”和“多芯蜡烛”作为子类等。
现在我想避免循环引用,即一个类别“a”,它的父类是“b”,而它的父类又是“a”。
有没有办法在 JPA 中检查带有约束的循环引用?还是我必须自己写一些检查,也许是用@PostPersist
-annotated 方法?
这是我的Category
课:
@Entity
public class Category {
@Id
@GeneratedValue
private Long id;
private String name;
@ManyToMany
private Set<Category> superCategories;
@ManyToMany(mappedBy="superCategories")
private Set<Category> subCategories;
public Category() {
}
// And so on ..
}