我在表 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"))
我必须手动添加要返回的订单的每个属性。如何指定要按所有订单字段分组?