我在 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 中)。