【发布时间】:2015-06-10 09:57:34
【问题描述】:
我已经按照自己的方式处理了这个 SQL 查询(经过测试并按预期工作):
SELECT c.carId, p.color as currentColor
FROM Car c
Inner join Paint p
ON( p.PaintId In (Select max(p2.PaintId) From Paint p2 where p2.carId = c.carId) )
什么是等效的 HQL 查询? (假设类名和属性与数据库表/列相同)
请注意,使用 'Order by paintId' 和 setMaxResults 不是一个选项。我需要在查询中获取currentColor,因为我需要稍后在 WHERE 语句中使用它
附加信息
我有一个包含 2 个实体的数据库:汽车和油漆,其中汽车可以有一个或多个油漆。
例如此查询将获取 carId = 15 的汽车的最新油漆
Select max(p2.PaintId) From Paint p2 where p2.carId = 15
我正在尝试创建一个查询,我可以在其中按汽车最近的油漆(最大油漆 ID)过滤汽车。 所需的输出应该是 Car Class 的实例。每行一个实例,所以 HQL 语句应该是这样的
Select distict c
From Car c
...
【问题讨论】:
-
你想要的输出是什么,即 Hibernate 应该返回
Car实例列表还是简单的Object[]? -
@mabi,好点,我已经编辑了我的问题来回答你。我需要一个 Car 实例列表。