Top / Hibernate / マッピング定義について / 結果にクエリを適用する

通常、ユーザクラスを検索して、それにひも付く担当者を検索するには、

user = (User) session.load(User.class, user.getId());
Set customers = user.getCustomers();
Iterator e = customers.iterator();
while (e.hasNext()) {
    Customer element = (Customer) e.next();
    logger.debug(element);
}

とすればOKです。これに対して、ソート処理など更にクエリをかけるには以下のようにすればOKです。

user = (User) session.load(User.class, user.getId());
Query query = session.createFilter(user.getCustomers(),
        "order by this.name asc"); <-この条件を↑のセットに対して行う
List list = query.list();
Iterator e = list.iterator();
while (e.hasNext()) {
    Customer element = (Customer) e.next();
    logger.debug(element);
}

これでthis.name(USER.NAME)でソートをかけることができます。


この記事は

選択肢 投票
おもしろかった 0  
そうでもない 0  

Top / Hibernate / マッピング定義について / 結果にクエリを適用する

現在のアクセス:6799


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS