Hibernate Criteria - Group By

时间:2013-09-20 16:06:38

标签: hibernate criteria

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

  • 的EntryID
  • CarID
  • 客户id
  • CarAge

我想要的是获得每个客户的最新车。使用通用查询,我会按日期DESC订购数据,然后按客户分组。

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

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

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

1 个答案:

答案 0 :(得分: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 < / p>