1

我有自己的包含汽车数据的表:

  • 条目ID
  • 车牌
  • 客户ID
  • 车龄

我想要的是让每个客户都拥有最新的汽车。使用通用查询,我将按日期 DESC 对数据进行排序,然后按客户分组。

使用标准,我尝试了这个:

session.createCriteria(Car.class)
    .addOrder(Order.desc("CarAge"))
    .setProjection( Projections.groupProperty("CustomerID"));

奇怪的是,这不会返回 Car 对象,而是返回一个客户 ID 列表。

4

1 回答 1

2

您不能期望 Car 对象。

select * from Car group by customerId order by carAge desc;

上面的 sqlquery 在数据库中也不起作用。下面是 Hibernate 执行的查询。

select customerId from Car group by customerId order by carAge desc;

如果您还需要其他列,请将其添加为组属性,您将得到它,否则获取所有 id 并再次查询数据库以获取其余值,否则编写 HQL 以具有子查询以返回特定客户 id

于 2013-09-20T16:12:46.357 回答