私は2つのテーブル/エンティティを持っています。すべて正常に動作します(ゲッターとセッターは省略されています)。フィールドがbook_idとCATEGORY_ID含ま結合表と呼ばれるbook_categoryで期待通りJPAのManyToManyクエリ
@Entity
public class Book() {
@Id;
int id;
@ManyToMany
List<Category> categories;
}
@Entity
public class Category {
@Id
int id;
@ManyToMany
List<Book> books;
}
JPA/Hibernateはデータベース構造を作成します。
カテゴリはあらかじめ作成されているので、すべてが本を持っているわけではありません。 私はそれらに書籍を持っている別のカテゴリを照会したいと思います。
次のSQLクエリはそれをしない:
SELECT DISTINCT <things> FROM book_category JOIN category ON category.id = book_category.category_id
しかし、どのように私はリポジトリからのカテゴリのリストを得ることができますか?あなたがそれらに割り当てられた本を持っているすべてのカテゴリをしたい場合は、私はあなただけの本のコレクションのサイズをチェックCategory
エンティティのクエリが必要だと思う
だから私は、カテゴリ・リポジトリ '一覧 findDistinctByBookIsGreaterThan(I int型)'でこれをしようとしたが、それは私に 'NoSuchElementException' –
jared
を与える直接JPQLクエリではないオプションですか? –
@ jared私の答えの名前付きメソッド構文は正確ではありません。しかし、必要に応じていつでもJPQLを直接使用することができます。 –