在尝试学习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;
}
答案 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();
}