【发布时间】:2014-03-18 20:46:10
【问题描述】:
如何将此 JPQL 查询转换为 Criteria API?
select count(p) from Person p join p.glanceList g where p.duration < 1000 and g
.duration < 1000
【问题讨论】:
标签: jpa criteria-api
如何将此 JPQL 查询转换为 Criteria API?
select count(p) from Person p join p.glanceList g where p.duration < 1000 and g
.duration < 1000
【问题讨论】:
标签: jpa criteria-api
试试这个。
CriteriaQuery<Long> q = cb.createQuery(Long.class);
Root<Person> person = q.from(Person.class);
Join<Person,Glance> glance = person.join("glanceList", JoinType.INNER);
q.select(cb.count(person))
.where(cb.lt(person.get("duration"), 1000), cb.lt(glance.get("duration"), 1000));
假设Glance 是连接中实体的类。
还有
CriteriaBuilder cb = em.getCriteriaBuilder();
【讨论】:
order 来自哪里?
person,join方法是Root对象中现有方法的一部分