2012-10-29 94 views
1

下面的查詢的大小得到所有的員工在部門:限制JPA協會查詢

List<Employee> employees = em.find(Department.class,departmentid).getEmployeeList(); 

不過,我很希望得到只有從上面的查詢結果的數量有限,而不是完整的結果集。可以通過上面的查詢嗎?

我知道em.createQuery()替代方案想使用實體中現有的一對多關聯,而不是寫一個新的查詢來獲得有限的結果。

任何幫助或想法都會很棒。

+1

不,這是不可能的。您必須使用查詢並設置其最大結果。 –

+0

我也這麼認爲,您必須使用例如FetchType.Lazy,然後編寫一個查詢,執行JOIN FETCH以獲取結果。或者,如果您不喜歡編寫JPQL,請創建命名查詢或使用CriteriaBuilder。 –

回答

2

使用JPQL,

Select e from Department d join d.employees e where d.id = :id 

,並設置了查詢的maxResults