Hibernate  Criteriaクエリ基本

2008/09/12 21:06Update
TAGS: Hibernate | Criteriaクエリ

Hibernateは、完全にオブジェクト指向のCriteriaクエリAPIを用意しています。本文はHibernate Criteriaクエリの最も基本的な使い方やCriteria API概要について学びます。

Hibernate  Criteria基本


■インタフェース
org.hibernate.criterion.CriteriaSpecification
org.hibernate.Criteria

■Hibernate Criteriaの基本的な使い方
まず、最もシンプルな形式から見てみましょう。
例:
Criteria crit = session.createCriteria(Employee.class);
List <Employee>employeeList = (List <Employee>)crit.list();


CriteriaインスタンスはSession.createCriteria(Class)メソッドで生成されます。

◇検索対象の指定
Session.createCriteriaメソッドにjava.lang.Class型のパラメータを渡します。
例:
session.createCriteria(Employee.class)


これは、何を検索するか(ここではEmployeeというエンティティ)をHibernateに知らせます。つまり、検索対象を指定することです。

◇検索結果の取得
Criteria.list()メソッドより検索結果を取得します。

例:
crit.list();


org.hibernate.Criteria API概要


◇ Criteria     add(Criterion criterion)
          抽出条件の設定を行います(追加)。
◇ Criteria     addOrder(Order order)
          並べ順の設定を行います(追加)。
◇ Criteria     createAlias(String associationPath, String alias)
          associationPath(JOINする関連オブジェクトのパス)にエイリアス(別名)をつけます。新しいCriteriaインスタンスを作成しません。
◇ Criteria     createAlias(String associationPath, String alias, int joinType)
          指定するjoinTypeで、associationPath(JOINする関連オブジェクトのパス)にエイリアス(別名)をつけます。
◇ Criteria     createCriteria(String associationPath)
          associationPath(JOINする関連オブジェクトのパス)から新しいCriteriaインスタンスを生成します。
◇ Criteria     createCriteria(String associationPath, int joinType)
          associationPath(JOINする関連オブジェクトのパス)及びjoinTypeから新しいCriteriaインスタンスを生成します。
◇ Criteria     createCriteria(String associationPath, String alias)
◇ Criteria     createCriteria(String associationPath, String alias, int joinType)

◇ String     getAlias()
          エンティティのエイリアス(別名)を取得します。
◇ List     list()
          結果集を取得します。
◇ ScrollableResults     scroll()
          結果集をScrollableResultsインスタンスとして返します。
◇ ScrollableResults     scroll(ScrollMode scrollMode)
          指定するスクロールモードで結果集をScrollableResultsインスタンスとして返します。
◇ Criteria     setCacheable(boolean cacheable)
          クエリに対するキャッシュが有効にします。SessionFactoryのキャッシュ設定を有効にする必要があります。
◇ Criteria     setCacheMode(CacheMode cacheMode)
          特定なクエリに対するキャッシュモードを設定(オーバーライド)します。
◇ Criteria     setCacheRegion(String cacheRegion)
          クエリに対するキャッシュ領域を指定します。
◇ Criteria     setComment(String comment)
          生成されたSQLにコメントをつけます。
◇ Criteria     setFetchMode(String associationPath, FetchMode mode)
         関連するオブジェクトやコレクションのフェッチ・戦略を指定します。
◇ Criteria     setFetchSize(int fetchSize)
          JDBCクエリのフェッチサイズを設定します。
◇ Criteria     setFirstResult(int firstResult)
          取得開始の行数を指定します。
◇ Criteria     setFlushMode(FlushMode flushMode)
          フラッシュモードを設定(オーバーライド)します。
◇ Criteria     setLockMode(LockMode lockMode)
          現在のエンティティのロックモードを設定します。
◇ Criteria     setLockMode(String alias, LockMode lockMode)
          指定するエイリアスに該当するエンティティのロックモードを設定します。
◇ Criteria     setMaxResults(int maxResults)
          取得するオブジェクトの数の最大値を設定します。
◇ Criteria     setProjection(Projection projection)
          Used to specify that the query results will be a projection (scalar in nature).
◇ Criteria     setResultTransformer(ResultTransformer resultTransformer)
          クエリ結果を処理する戦略を設定します。
◇ Criteria     setTimeout(int timeout)
          JDBCクエリのタイムアウト時間を設定します。
◇ Object     uniqueResult()
          クエリが一つしかないオブジェクトを抽出しなかった場合、uniqueResult()メソッドがその抽出したオブジェクトのインスタンスを返します。

有关作者
Syboos.jp編集長AJavaやオープンソース情報の執筆、Webサイトの開発や運営全般の業務に携わる。

Sponsored Link


Comments