【问题标题】:JPA criteria subquery with common customerId field具有公共 customerId 字段的 JPA 条件子查询
【发布时间】:2012-09-29 07:14:54
【问题描述】:

如何使用 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。但我就是不明白。感谢您的帮助。

【问题讨论】:

标签: mysql jpa-2.0


【解决方案1】:

类似:

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 外部化到您的实体中。

塞巴斯蒂安

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多