如何在Hibernate hql中获取具有最大值的对象?
我正在使用Hibernate处理一个查询,下面是查询如何在Hibernate hql中获取具有最大值的对象?,hibernate,hibernate-criteria,Hibernate,Hibernate Criteria,我正在使用Hibernate处理一个查询,下面是查询 List<ArticleP> articleP = session.createQuery("select ap, max(ap.lastPrice.price) from ArticleP ap " + "where ap.stock > 0 and ap.article.category.idCategory = :idCategory " + "group
List<ArticleP> articleP = session.createQuery("select ap, max(ap.lastPrice.price) from ArticleP ap "
+ "where ap.stock > 0 and ap.article.category.idCategory = :idCategory "
+ "group by ap.article, ap.prov "
+ "order by ap.article.desc ASC")
.setProperties(category)
.list();
我得到一个多维数组,包含一个对象和一个max-double,但我想得到一个对象数组,它有一个max值,类似这样
List<ArticleP> articleP = session.createQuery("from ArticleP ap "
+ "where ap.stock > 0 and ap.article.category.idCategory = :idCategory and max(ap.lastPrice.price) "
+ "group by ap.article, ap.prov "
+ "order by ap.article.desc ASC")
.setProperties(category)
.list();
List<ArticleP> articleP = session.createQuery("select ap, max(ap.lastPrice.price) from ArticleP ap "
+ "where ap.stock > 0 and ap.article.category.idCategory = :idCategory "
+ "and ap.id IN (select max(ap.lastPrice.price) from ArticleP ap
+ " group by ap.article, ap.prov "
+ " order by ap.article.desc ASC)")
.setProperties(category)
.list();from phone p where p.id not in
我知道最后一次查询是不可能的,也不知道如何获得所需的数据
提前感谢。Ypu可以定义一个子查询并在类似的情况下使用
List<ArticleP> articleP = session.createQuery("from ArticleP ap "
+ "where ap.stock > 0 and ap.article.category.idCategory = :idCategory and max(ap.lastPrice.price) "
+ "group by ap.article, ap.prov "
+ "order by ap.article.desc ASC")
.setProperties(category)
.list();
List<ArticleP> articleP = session.createQuery("select ap, max(ap.lastPrice.price) from ArticleP ap "
+ "where ap.stock > 0 and ap.article.category.idCategory = :idCategory "
+ "and ap.id IN (select max(ap.lastPrice.price) from ArticleP ap
+ " group by ap.article, ap.prov "
+ " order by ap.article.desc ASC)")
.setProperties(category)
.list();from phone p where p.id not in