2016-04-12 27 views
0

我有這樣的Java代碼:怎麼辦尺寸JPA到CriteriaQuery中

CriteriaBuilder qb = entityManager.getCriteriaBuilder(); 
CriteriaQuery<Long> cq = qb.createQuery(Long.class); 
cq.select(qb.count(cq.from(MyEntity.class))); 
cq.where(/*your stuff*/); 
return entityManager.createQuery(cq).getSingleResult(); 

我想做到這一點條件查詢:

SELECT COUNT(p),pa.nomPays FROM SessionPersonne s JOIN s.personne p , 
p.entreprise e , e.adresse a , a.localite l , l.pays pa , s.session session 
WHERE size(s.passageCollection) > 0 GROUP BY pa.nomPays 

但如何做size(s.passageCollection) > 0與臨界查詢?

謝謝你。

+0

爲什麼這個標記爲與Java相關的? – user3114639

+0

因爲criteriaquery criteriabuilder和java不是?CriteriaBuilder qb = entityManager.getCriteriaBuilder(); CriteriaQuery cq = qb.createQuery(Long.class); cq.select(qb.count(cq.from(MyEntity.class))); cq.where(/ *你的東西* /); return entityManager.createQuery(cq).getSingleResult(); –

+0

請將您的Java代碼添加到您的問題中,這會讓您更容易理解您要做什麼。 – user3114639

回答

1

您可以獲取使用的尺寸標準如下

Expression<Integer> sizeExpr = qb.size(SessionPersonne_.passageCollection) 

因此

qb.greaterThan(sizeExpr, 0);