2

我在表 Order 和表 Line 之间有一个简单的一对多关系。

我想要一个报告每个 Order 实体和 Line.Value 字段总和的查询。

我可以在 HQL 中做到这一点:

select order, sum(line.Value) as LineValue 
from Order as order   
  join order.Lines as line
group by order

到目前为止,一切都很好。当我运行它时,我得到一个对象数组列表,其中 [0] 是订单,[1] 是行值的总和。

我如何使用标准 API 做同样的事情?

我能得到的最接近的是:

session.CreateCriteria(typeof(Order))
  .CreateAlias("Lines", "l")
  .SetProjection(Projections.ProjectionList()
     .Add(Projections.GroupProperty("Id"))
     .Add(Projections.GroupProperty("Customer"))
     /* ... ditto for each Order field ... */
     .Add(Projections.Sum("l.Value"))

我必须手动添加要返回的订单的每个属性。如何指定要按所有订单字段分组?

4

0 回答 0