JpaSpecificationExecutor.findAll(new Specification<T>(){ public Predicate toPredicate(Root<TabSgUserPackage> root, CriteriaQuery<?> query, CriteriaBuilder builder) { } })
最近一直使用springside 4 (spring data jpa(hibernate) + springMVC ) 今天遇到很是棘手的問題。 使用findAll 分頁的時候 java
若是調用root.fetch().....會報異常aused by: java.lang.IllegalArgumentException: org.hibernate.QueryException: query specified join fetching, but the owner of the fetched association was not present in the select list ........ select count(*) from .... spring
查一查百度緣由解釋是使用count 聚合函數不能調用fetch。 ide
要查詢指定的的對象,但owner沒有關聯目前選擇的集合或者對象。 函數
而後看到這篇帖子 fetch
如上是一樓沙發的回答。 ui
判斷結果類型是不是long類型 來決定是否fetch
this