次のような Tag クラスがあります。
public class Tag {
private Long id;
private String title;
private Set<Document> documents = new HashSet<Document>();
public Tag(){}
//getter and setter...
}
そして、いくつかのタグオブジェクトによって分類されたクラス Document
public class Document {
private Long id;
private String title;
private Int numberPages;
private Set<Tag> tags = new HashSet<Tag>();
public Document(){}
//getter and setter...
}
そして今、最大10ページのドキュメントを取得したいと思います。それらには「短い」または「エッセイ」のタグが付いています
次のようなものだと思います:
int nPages = 10;
Query query = session.createQuery("from Document where nPages <= :numberPages and (<<short>> OR <<essay>>);
query.setInteger("numberPages", nPages);
タグのリストは可変である可能性があります。そして、すべてのタグが必要な場合 (タグ間の「AND」) と、任意のタグで十分な場合 (タグ間の「OR」) を区別したいと思います。
SQL ステートメントを作成するにはどうすればよいですか?