【发布时间】:2017-01-12 01:57:21
【问题描述】:
我有一个名为“位置”的表,用于记录员工的纬度和经度。位置表具有以下字段: id、employee_id(FK 到员工表)、纬度、经度、created_date。此表包含许多具有不同 created_date 的employee_id 条目。现在,从位置表中,我想要所有员工的最新创建日期的条目。也就是说,位置表可能包含在 1 月 1 日和 1 月 2 日创建的employee_id 1 的两个条目。结果查询应该只返回员工 ID 1 的 1 月 2 日条目。同样,我想要位置表中当前列出的所有员工的条目。
MySQL 中的以下查询是这样做的:
SELECT loc1.* FROM location loc1 LEFT OUTER JOIN location loc2
ON (loc1.employee_id = loc2.employee_id AND
(loc2.createdDate > loc1.created_date AND loc2.id > loc1.id))
where loc2.employee_id is null;
现在,当我在 Spring Data JPA 中运行与 HQL 查询相同的查询时,查询变为:
SELECT loc1 FROM location loc1 LEFT OUTER JOIN location loc2 ON
(loc1.employee= loc2.employee AND
(loc2.createdDate > loc1.createdDate AND loc2.id > loc1.id))
where loc2.employee is null
我明白了
“由:org.hibernate.hql.internal.ast.QuerySyntaxException 引起:连接需要路径!”
同一张表用于join时如何给出路径?
【问题讨论】: