【发布时间】:2018-12-08 03:48:00
【问题描述】:
我有 2 个表,分别是 Parent 和 Child,它们是一对多的关系。
在实体类中,Parent 类有一个 Child 对象的列表。
如果使用 JPA 查询,我如何编写查询来检索所有父母及其最后一个孩子?
可能有父母没有孩子的情况。
如果使用 sql,会是这样的:
select * from parent p
left outer join child c on c.parent_id = p.id
where c.child_id is null
or c.child_id = (
select child_id from (
select child_id
from child d
where d.parent_id = p.id order by child_age DESC, child_id DESC)
where rownum<=1)
【问题讨论】:
-
先弄清楚如何在 SQL 中执行此操作并向我们展示您的努力
-
如果这样行得通,为什么不尝试将其放入本机查询中呢?
Query q = em.createNativeQuery (....); -
为什么要编写手动查询?为什么不标准构建器。你在用spring jpa吗?
-
因为我的公司只是不允许开发人员编写原生 SQL。
-
CriteriaBuilder 如何提供帮助?
标签: java jpa eclipselink jpa-2.1