2013-11-22 65 views
0

我面臨的一個問題,當我想檢索與在實體一對多關係的記錄裏面,我想要的是獲取該實體的具體記錄,它裏面的所有關係的集合?我怎麼能使用JPA查詢?JPA取3個記錄實體收集一對多關係

... 
public class JsPost implements Serializable, Comparable<JsPost> { 
     ... 
     @OneToMany(cascade = CascadeType.ALL, mappedBy = "postId") 
     private Collection<JsComment> jsCommentCollection; 
     ... 
} 

JsPostDAOfetch(...)方法

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(); 
    } 

後,我打電話獲取方法都JsCommentsJsPost檢索?我如何設置Collection<JsComment>的最大結果?任何幫助?

回答

0

我調用fetch方法後,JsPost的所有JsComments檢索?

否。默認情況下關聯是懶惰的,因此數據庫沒有通過此查詢加載JsComment實例。只有在調用somePost.getJsCommentCollection()上的方法時纔會檢索帖子的評論。

我怎麼可以設置收集最大結果?

這個問題是無關緊要的,因爲評論沒有被提取。

邊注:您的命名是可怕的。爲什麼不將這些實體命名爲PostComment。並命名集合comments,而不是jsCommentCollection?難道post.getComments()jsPost.getJsCommentCollection()更可變嗎?

+0

感謝的答案:),沒有沒有在NetBeans IDE本身產生從數據庫變量命名爲jsCommentCollection和JS是項目名稱的快捷方式。對我來說我不爲現實的項目做到這一點,但瞭解JPA技術,嗯,我從你的回答理解我的呼喚提取方法的意見將不會因爲默認情況下取型loadded是懶惰。 – user2888548

相關問題