別のオプションは、ネストされた選択を作成するのと基本的に同等の @Formula アノテーションを使用して、カウントを取得できるようにすることです。
問題のDBオブジェクトのプロパティ/メンバー(作成する必要があります)で、次のように注釈をゲッターに追加します。
@Formula("(SELECT COUNT(TABLE_NAME.ID) FROM TABLE WHERE 何でも...)") public long getNewProperty{ return newProperty; }
次に、メンバーを直接ターゲットにして、カウント値を取得します...
注: 数式注釈内で sql を指定する場合、hibernate が this 自体を処理するため、現在のオブジェクト テーブル (this) を参照するときにフィールド名を直接指定する必要があることに注意してください。したがって、WHERE句では、UserGroupであると思われる現在のオブジェクトテーブルを参照するときに、IDなどを単独で使用してください。
休止状態が機能し、コンパイラが不平を言うのを防ぐために、新しいプロパティのセッターが必要でした。
@Formula を使用する他の賢い方法があるかもしれませんが、私はこれにかなり慣れていないため、この件に関するドキュメントはあまりないようです...
以前にネストされた SELECTS を使用したことがない場合は、最初に sql で再作成することをお勧めします - それは私を助けました.
お役に立てれば