2016-04-12 28 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);