如何解决JPA Criteria API:如何在嵌套集合中选择属性
|| 我有一个类别“ 0”和“ 1”的实体。Customer
与它的从属关系成多对多的双向关系。我需要找到按名称和从属名称过滤的客户。
在JPQL中已完成以下操作:
select c join fetch c.dependants d from Customer c where c.name like
\'foo\' and d.name like \'foo\'
如何使用JPA标准查询执行相同的操作?
解决方法
摘自JPA规范第6.5.4节
CriteriaQuery<Department> q = cb.createQuery(Department.class);
Root<Department> d = q.from(Department.class);
d.fetch(Department_.employees,JoinType.LEFT);
q.where(cb.equal(d.get(Department_.deptno),1)).select(d);
此查询等效于以下Java Persistence查询语言查询:
SELECT d
FROM Department d LEFT JOIN FETCH d.employees
WHERE d.deptno = 1
这是我不提取而做的
CriteriaQuery<Department> q = cb.createQuery(Department.class);
Root<Department> dept = q.from(Department.class);
Join<Department,Employee> emp = d.join(Department_.employees);
q.where(cb.equal(emp.get(Employee_.name),\"edalorzo\"));
提取是联接的一种,因此我想您也可以尝试一下。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。