Hibernate Criteriaクエリ基本
2008/09/12 21:06Update
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()メソッドがその抽出したオブジェクトのインスタンスを返します。
Sponsored Link
- Relative Articles
- Hibernate設定ファイルその1 - hibernate.cfg.xml - (2008/07/09 14:08)
- Hibernate c3p0 - よく利用されているコネクションプーリング - (2008/07/09 15:00)
- Hibernate 方言(Dialect)一覧 - (2008/07/09 15:10)
- Hibernate のSessionとSessionFactory - (2008/07/09 15:51)
- ThreadLocal でHibernate Session を効率的に管理する - (2008/07/09 18:43)
- Hibernateで複数のDBに接続するには? - (2008/07/09 18:47)
- Hibernateとは - (2008/07/11 14:23)
- Hibernate のインストール - (2008/07/24 11:01)
- Hibernate の開発手順 - (2008/07/24 12:44)
- Hibernate SQLをログに出力方法 - (2008/07/30 16:06)