使用group by的HQL查询

时间:2009-01-28 15:06:27

标签: hibernate hql

我有以下类的结构FlowerDAO与字段(使用Hibernate映射):

  • ID
  • UNITPRICE
  • 名称
  • 颜色

    如何创建一个hql查询来获取每种颜色的花朵(具有(ve)该颜色的最小单价?)

我试过这个,但它不起作用

from FlowerDAO as f where f.unitPrice<= (select min(f2.unitPrice) from FlowerDAO as f2 where f2.color=f.color)
group by f.color

1 个答案:

答案 0 :(得分:2)

我怀疑问题是将单个值与一组结果进行比较。尝试将&lt; =替换为'in',以便查询:

from FlowerDAO as f 
  where f.unitPrice in 
    (select min(f2.unitPrice) from FlowerDAO as f2 where f2.color=f.color)

另外,我从最后删除了'group by',因为这只会为每种颜色提供一个结果,并且你在问题花中提到了。您可能想要使用

order by f.color

代替?