使用Hibernate映射Java类:如何在类中映射其自己的对象列表

时间:2012-04-02 18:45:47

标签: java hibernate java-ee jpa

使用Hibernate和JPA我想映射一个包含自己对象列表的类,如:

public class Category{
     private List<Category> subCategories = new ArrayList<Category>();
}

我试图通过使用:

来做到这一点
@OneToMany(fetch = FetchType.EAGER, mappedBy = "category")

但是当我尝试这个时,我收到以下错误:

Initial SessionFactory creation failed.org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: my.domain.name.Category.category in my.domain.name.Category.subCategories

2 个答案:

答案 0 :(得分:1)

@OneToMany注释的mappedBy属性是指所有者方的关联的属性名称。显然,您的category课程中没有名为Category的属性。

答案 1 :(得分:1)

试试这个:

public class Category {

    @ManyToOne
    private Category superCategory;

    @OneToMany(mappedBy = "superCategory")
    private List<Category> subCategories = new ArrayList<Category>();
}

您的示例中的问题是您的班级中没有此类属性category