0

我有一个非常标准的 Orders 表和一个关联的 OrderRows 表,比如:

Orders
[id] INTEGER
[name] ...

OrderRows
[orderId] INTEGER
[quantity] INTEGER
[unitPrice] SMALLMONEY
[description] VARCHAR(...)

在某些情况下,我想检索订单列表以及总计摘要,大多数时候我不关心摘要。

使用标准 API,我可以为每个订单创建 [数量]*[单位价格] 的投影,但是如何在同一结果集中同时获得订单和投影?

4

2 回答 2

0

您可以在实体中计算 Total 并将其存储在数据库中(如果您不想每次都加载所有行)。

于 2009-11-23T09:08:22.283 回答
0

我相信这里的解决方案是创建一个 DTO 类,然后将其用作结果转换。

public class OrderDTO
{
    int Id;
    // Rest of Orders properties you want

    int LineTotal; // [quantity]*[unitPrice]

    public OrderDTO(int id, /* rest of constructor parameters */);
}

session.CreateCriteria(typeof(... /* criteria query here */))
    .SetResultTransformer(new AliasToBeanConstructorResultTransormer(typeof(OrderDTO).GetConstructors()[0]));
于 2009-05-18T14:10:53.600 回答