如何SUM()Play框架模型中的字段

时间:2011-12-30 22:19:29

标签: playframework

在尝试学习Play Framework时遇到了以下问题:

如何计算Play框架模型中字段的摘要?我想做的等同于SQL“SELECT SUM(totalAmount)FROM事件,其中employee_id = 23”。

我可以自己计算摘要,就像下面的代码一样,但我更喜欢SQL服务器进行计数:

public static Double countSaldoForEmployee(Employee e) {
    // Get all Events for the employee
    List<Event> events = Event.find("byEmployee", e).fetch();
    Double sum = 0.0    ;
    for(Event event: events) {
        if(event.totalAmount != null) {
            sum += event.totalAmount;
        }
    }
    return sum;
}

1 个答案:

答案 0 :(得分:3)

您应该可以使用简单的本机查询来执行此操作。如下所示。

public static Double countSaldoForEmployee(Employee e) {

    return  (Double)em.createNativeQuery("SELECT SUM(e.totalAmount) FROM events e where e.employee_id = "+e.id).getSingleResult();    
}