具有公共customerId字段的JPA条件子查询

时间:2012-10-09 01:56:05

标签: mysql jpa-2.0

如何使用JPA Criteria编写以下MySQL查询?

select * from deptors where customerId in 
   (select customerId from address where zipcode="12345-6789")
and gender="male";

我已阅读http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/Criteria#Subquery和许多stackoverflow线程,包括JPA 2.0, Criteria API, Subqueries, In Expressions。但我只是没有得到它。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

类似的东西:

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Deptors> cq = cb.createQuery(Deptors.class);
Root<Deptors> c = cq.from(Deptors.class);

Subquery<Address> subquery = cq.subquery(Address.class);
Root<Address> a = subquery.from(Address.class);

但我宁愿建议使用JPQL构建此查询和/或将其作为NamedQuery外部化到您的实体中。

塞巴斯蒂安