Java Hibernates无法从数据库检索完整对象

Java Hibernates无法从数据库检索完整对象,java,hibernate,Java,Hibernate,我面临着Hibernate的奇怪问题,不知道为什么会发生这种情况 我的类别实体通过一对多关系自连接: @ManyToOne @JoinColumn(name = "PARENT") private Category parentCategory; @OneToMany(fetch = FetchType.EAGER, mappedBy = "parentCategory", orphanRemoval=true) @Cascade(CascadeType.SAVE_UPDATE) privat

我面临着Hibernate的奇怪问题,不知道为什么会发生这种情况

我的类别实体通过一对多关系自连接:

@ManyToOne
@JoinColumn(name = "PARENT")
private Category parentCategory;

@OneToMany(fetch = FetchType.EAGER, mappedBy = "parentCategory", orphanRemoval=true)
@Cascade(CascadeType.SAVE_UPDATE)
private Set<Category> childrenCategories;
这将导致DB中出现两行:

ID|NAME |PARENT
1 |Test |(null)
2 |Test2|1
当1是父对象,2是子对象时,这似乎是正常的

我通过以下方式从数据库获取数据:

(Category) sessionFactory.getCurrentSession().get(Category.class, id);
当我使用1执行此操作时,一切都正常,Hibernates将获得完整的对象和填充集。但是,当我尝试获取2时,Hibernate实际上只映射ID字段:

Category@...
childrenCategories  null    
id  Integer  (id=111)   
name    null    
parentCategory  null    
products    null    
这将导致代码后面出现多个NPE

这种行为的原因可能是什么?在我看来,所有关系都设置正确。此外,我还尝试用类似的方法在spring上下文之外创建类似的类,并且似乎一切正常


感谢您的建议。

在@manytone注释中尝试将fetch属性设置为EAGER,就像@OneToMany在删除fetch=FetchType时一样。@OneToMany的EAGER问题消失了。然而,我想知道为什么会发生这种情况。
Category@...
childrenCategories  null    
id  Integer  (id=111)   
name    null    
parentCategory  null    
products    null