2011-12-30 2 views
1

При попытке узнать Play Framework я натыкался следующей проблемой:Как SUM() поле в Play Framework модели

Как рассчитать сводные данные поля в Play Framework модели? Я хотел бы сделать эквивалент SQLs «SELECT SUM (totalAmount) FROM events, где 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; 
} 

ответ

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();  
} 
+0

Спасибо! Только то, что я искал. – Franz

Смежные вопросы