【发布时间】:2012-04-24 01:45:41
【问题描述】:
我正在为商店注释我的域模型(使用 JPA 2,使用 Hibernate 提供程序)。
在商店中,每个产品都可以有一个Category。每个类别都可以分配到几个超类别和子类别,这意味着“蜡烛”类别可以将“餐厅”和“装饰”作为父类,将“普通蜡烛”和“多芯蜡烛”作为子类等。
现在我想避免循环引用,即。 e.一个类别“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 ..
}
【问题讨论】:
-
你为什么需要那个? JPA 会自动检查,不会出现任何问题。你有什么问题?
-
“父母”字段在哪里?您将其称为“mappedBy”