2011-12-30 6 views
1

中)(フィールドを合計するには?私は「EMPLOYEE_ID = 23イベントからSUM(totalAmount)を選択し、」SQL文と同等の操作を行いたいと思います。はどのようにプレイフレームワークモデル

私は以下の私のコードのように、要約を自分で数えることができるが、私はカウントを行うには、むしろ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