厄介なハイバネートクエリの問題については助けが必要です。 book_id列とTAG_IDと結合テーブルbooks_tags_mnで表され、両者の間の多対多関連がありHibernate:コレクションに指定されたすべてのvalusが含まれているエンティティを選択してください
public class Book {
private String bookId;
private String author;
private String isbn;
private Set<Tag> tags;
// getters, setters etc.
}
と
public class Tag {
private String tagId;
private String tagName;
// getters, setters, etc.
}
:私は、次のエンティティを持っています。
私が好きなのは次のとおりです。特定のタグセットのすべてを持つすべての本を返すハイバネートクエリ/条件クエリを作成したいとします。どのような働きをするのは、のタグをすべて含むの書籍を選択することです。
私は基準APIを使いこなしてきましたが、それを本当に理解していませんでした。したがって、この上、私は(擬似HQLで)やろうとしています
from Book book where book.tags containsAll(:tags)
するすべてのヘルプは高く評価されるだろう、そう事前にどうもありがとうございました。
from Book book where containsAll(collect(book.tags), :tags)
:関数が定義されて登録されると、あなたのようHQL /基準クエリを実行することができるだろう
collect(book.tags) -> returns list of tags associated with the book
containsAll(bookTagsList, tags) --> validates and returns true if all
tags elements are present in bookTagsList
returned by the first function "collect"
:
感謝を追加する必要があるとして! –
コレクションに(IDにではなく)重複を含めることができる場合は、count(distinct) – Ben