Hibernateクエリ - setParameterListでSELECT~WHERE~IN(...)
2008/11/14 13:16Update
SQL文の「SELECT~WHERE~IN(...)」句である列の複数のOR条件を一括指定することができます。本文は、HibernateのSQLクエリやHQLクエリ、及びCriteriaクエリにおいて、それぞれの「WHERE~IN(...)」の実装方法について学びます。
関連API仕様
org.hibernate.criterion.Restrictions
#static Criterion in(String propertyName, Collection values)
static Criterion in(String propertyName, Object[] values)
org.hibernate.Query
#Query setParameterList(String name, Collection vals)
Query setParameterList(String name, Collection vals, Type type)
Query setParameterList(String name, Object[] vals)
Query setParameterList(String name, Object[] vals, Type type)
Query setParameters(Object[] values, Type[] types)
Hibernate SQLクエリでSELECT~WHERE~IN(...)
――――――――――――――――――――――――――――――
Hibernate ネイティブSQLクエリ基本 
Hibernateの名前つきクエリ - パラメータの設定
――――――――――――――――――――――――――――――
例:
String []conditions = {"WhiteCat", "BlackCat"};
//List conditions = ...
String sql = "SELECT c.NAME, c.ID FROM CAT c WHERE c.NAME IN (:name)";
Query query = ...
query.setParameterList("name", conditions);
Hibernate HQLクエリでSELECT~WHERE~IN(...)
――――――――――――――――――――――――――――――
Hibernate HQL入門その1 - HQLの基本的な書き方及びその利用方法 
――――――――――――――――――――――――――――――
例:
String []conditions = {"WhiteCat", "BlackCat"};
//List conditions = ...
String sql = "SELECT c.name, c.id FROM Cat c WHERE c.name IN (:name)";
Query query = ...
query.setParameterList("name", conditions);
また、通常のSQLと同じように、こんな使い方もできます。
String sql = "SELECT c.name, c.id FROM Cat c WHERE c.name IN (SELECT o.name FROM SomeTalbe WHERE o.name = :name)";
Hibernate CriteriaクエリでSELECT~WHERE~IN(...)
――――――――――――――――――――――――――――――
Hibernate Criteriaクエリ基本
Hibernate Criteriaクエリ - Criteria.addメソッドで抽出条件の設定
――――――――――――――――――――――――――――――
例:
String []conditions = {"WhiteCat", "BlackCat"};
//List conditions = ...
Criteria criteria = session.createCriteria(Cat.class);
criteria.add(Restrictions.in("name", conditions));
以上。
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)