我在JPQL中有一个非常有用的查询:
select count(p) from Project p, in (p.members) s where s.members.email = :email
或再次
select p from Project p, in (p.members) s where s.members.email = :email order by p.lastUpdate desc
快速,易懂,完美无瑕。当关系不是@ * ToMany而是@ElementCollection时,它甚至可以很好地工作。
现在我需要将in (p.members) s where s.members.email = :email
转换为Criteria API,以便我可以在许多类似的实体中复制这种查询模式,或者以编程方式添加“orderBy”和其他条件,我宁愿不通过String
操作,我熟悉Criteria API的基本用法,但我绝不是专家。
我尝试了CriteriaBuilder.in(~)
,但它似乎是一个完全不同的含义......或者我使用它错了。
有人可以帮忙吗?
我在JPA 2.1后面使用Hibernate 4.3.0(在Play!Framework中)。