我有自己的包含汽车数据的表格:
我想要的是获得每个客户的最新车。使用通用查询,我会按日期DESC订购数据,然后按客户分组。
使用标准,我尝试了这个:
session.createCriteria(Car.class)
.addOrder(Order.desc("CarAge"))
.setProjection( Projections.groupProperty("CustomerID"));
奇怪的是,这不会返回Car对象,但会返回客户ID列表。
答案 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>