2016-04-14 9 views
0

でテーブルの列の合計を取得するために、私はプレーで新しいですし、私は、データベース内のすべての列を取得することですが、私はすべての合計を取得する方法がわからないことどのようにプレイJavaフレームワーク

model classデータを取得

controller class

+0

すべてのretrieve *データの合計はどういう意味ですか?あなたがコードを提供する場合は、スクリーンショットではなく、質問の一部としてテキスト形式にする必要があります。 – Anton

+0

意味:列の追加 – user3518835

+0

何を知るべきかは、javaのようなものです。SELECT SUM (column_name)FROM table_name; – user3518835

答えて

0

あなたは本当にあなたがそれを計算する方法を定義することができますJavaでごGeneral_storeモデルのすべてamountフィールドの合計を取得したい場合:

private static long sumOfStores() { 
    long sum = 0; 
    List<General_store> allStores = General_store.all(); 
    for (General_store gs : allStores) { 
     sum += gs.amount; 
    } 
    return sum; 
} 

もちろん、Java 8を使用している場合はストリームを使用できます。

しかし、もっと重要な部分はこれです。何もそのようにしないでください。これは、これがデータベースに格納されている情報であるためです。したがって、データベースに、この情報の集計があるかどうかを尋ねて、計算するのは簡単ではありません。 SUMの場合、これは本当に些細なことです。上記の方法では、データベースからすべてのアイテムを最初に取り出して、そのフィールドの1つで簡単な操作を実行します。ですので、SELECT SUM(column_name) FROM table_name;を使用して、問題を解決してください。 Ebeanを使用すると、問合せを問題なく使用できます。

private static long sumOfStores() { 
    final String sql = "SELECT SUM(amount) as total FROM General_store"; 

    SqlQuery sqlQuery = Ebean.createSqlQuery(sql); 
    SqlRow row = sqlQuery.findUnique(); 
    return row.getLong("total"); 
} 
+0

素晴らしいアイデアありがとう。私はコントローラを介して結果を印刷しようとしていますが、エラーが発生します: 'public static Result ShowBalance(){ Form taskData = form(General_store.class); 返信ok(views.html.balance.render(General_store.sumOfStores()、taskData) );} – user3518835

+0

答えがあなたの問題を解決した場合は、それを受け入れることを検討するかもしれません。ちょうどFYI:あなたがこれを編集するのではなく別の問題を抱えている場合は別の質問を開きます:)私はそこでも助けようとします – Anton

+0

エラーはそれがlon.play.form に適用できないと言います。 – user3518835

関連する問題