我有两个实体,topics
和posts
。对于一个posts
,topics
多了topics
。
所以我设置了OneToMany
到class topics implements Serializable {
...
@OneToMany(fetch = FetchType.EAGER, mappedBy = "topic")
@OrderBy("date DESC")
private List<posts> postsList;
public List<posts> getPostsList()
{
return this.postsList;
}
}
:
posts
在topic
实体中,Integer
字段不是任何特定设置,只是典型的postsList
。
问题是,我无法使用EAGER
抓取类型获取此LAZY
,但无论如何它都会保留topics theTopic = (topics) session.load(topics.class, topic);
List<posts> postsOfTopic = theTopic.getPostsList();
:
List
... {{1}}现在包含一个对象,但它已经满了空。
任何想法如何解决?
答案 0 :(得分:2)
session.load方法通常返回代理,而session.get方法保证返回初始化实体,并且如果标记为这样,则会急切地获取集合。此外,还可以选择使用eager fetch HQL查询来急切加载相关集合。