当我想在实体中检索具有OneToMany关系的记录时,我遇到了一个问题,我想要的是获取实体的特定记录以及其中的所有关系的集合?我怎么能用JPA查询呢?
...
public class JsPost implements Serializable, Comparable<JsPost> {
...
@OneToMany(cascade = CascadeType.ALL, mappedBy = "postId")
private Collection<JsComment> jsCommentCollection;
...
}
和JsPostDAO
fetch(...)
方法
public List<JsPost> fetch(int min, int max) {
Query query = em.createQuery("SELECT p FROM JsPost p order by p.postDateCreated DESC");
query.setFirstResult(min);
query.setMaxResults(max);
return query.getResultList();
}
我调用fetch方法后检索JsComments
的所有JsPost
?如何设置Collection<JsComment>
的最大结果?有什么帮助吗?
答案 0 :(得分:0)
在我调用fetch方法后,JsPost的所有JsComments都被检索了?
没有。默认情况下,该关联是惰性的,因此该查询不会由数据库加载JsComment实例。只有在somePost.getJsCommentCollection()
上调用方法时才会检索帖子的评论。
如何设置Collection的最大结果?
这个问题无关紧要,因为没有提到评论。
旁注:你的命名很糟糕。为什么不命名这些实体Post
和Comment
。并命名集合comments
,而不是jsCommentCollection
?拥有post.getComments()
而不是jsPost.getJsCommentCollection()