特定のリクエストが現在どの状態にあるかを定義する(例:保留中、承認済み拒否など)STATE
フィールド(String/Text)SpringデータJPA Distinct - 単一の列からの結果を返します
STATE
:私は、次のTSQLクエリCALLOUT_REQUEST
が私のテーブル名で、
STATE
のようなものを返すフィールドであること
SELECT DISTINCT STATE FROM CALLOUT_REQUEST
を実行することができ、その列からすべての一意の値
-
承認
- 私は私が」を必要とするようだと、私は私のリポジトリ内のクエリにそれを回すだろうか理解していないが
- ...
を保留私はSTATE
に基づいて得ることができますか?
上記の未処理のTSQLクエリに示されているように、STATE
フィールドのすべての一意/個別値を含む何らかの種類のListオブジェクトまたはArrayオブジェクトです。
ので、擬似コードで私はこのような何かを探していますと思う:findDistinctState()
は、その後の種類の配列を返します
String[] states = repository.findDisinctState();
。
希望がある - 私はJavaとSpringの一般性が非常に新しいので、私は上記を利用するための概念的な知識が不足していると思う。
UPDATE:
「状態」という概念をので、私は列挙型としてそれを実装することができ閉じている - 唯一の問題は、私は:)病気は私のようにそれを行うことができますどのように見ていることを行う方法を知っていけないですそれが私が達成しようとしているものに完全に合っていると思う。
提供されたクエリから取得したリストは、すべての出現回数を取得するために使用することを目的としています。私は、「状態」のそれぞれの合計数を取得する前にこのコードを持っていた:
Map stats = new HashMap();
String[] states = {"approved", "denied", "pending", "deactivated"};
for (int i = 0; i < states.length; i++) {
stats.put(states[i], repository.countByState(states[i]));
}
を私は上記のコードを持っている状態Array
が列挙型に変えることができることを理解で正しいですし、その後、私もカスタム@Query
が必要ないのですか?
ありがとうございます。なぜ私は最初にカスタムクエリを要求したのかと質問を更新しました。返されるDistinct値の数を収集するために使用する必要があることを示しています。 –
enumの作成に関する問題は表示されません。可能な値をすべて1つ作成してください:https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html 次に、その列挙型の 'CalloutRequest'の下にフィールドを作成します。最後に、@ Enumerated(EnumType.String) http://tomee.apache.org/examples-trunk/jpa-enumerumerated/README.html –
これが私の最初のJavaアプリケーションであるという事実が問題です。単にそれを行う方法を知らなかったが、明確化のためにあなたに感謝します。 –