首页 文章

Hibernate Criteria - Group By

提问于
浏览
1

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

  • EntryID

  • CarID

  • CustomerID

  • CarAge

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

使用标准,我试过这个:

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

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

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

相关问题