ぶろぐ

日記です

HibernateでLike検索


@SuppressWarnings("unchecked")
public List<Bean> findNameLike() {
  // 検索条件
  String name = "name";

  // セッション生成
  SessionFactory sessionFactory = new Configuration().configure()
	.buildSessionFactory();
  Session session = sessionFactory.openSession();

  // 条件追加
  Criteria criteria = session.createCriteria(Bean.class);
  criteria.add(Restrictions.like("name", name, MatchMode.ANYWHERE));

  // データ取得
  List<UsersBean> result = criteria.list();

  return result;
}

下の二つ違いがわかんない・・・

  • Restrictions.like
  • Restrictions.ilike

マッチモード

前方一致、後方一致、中間一致、完全一致が選べる。
省略した場合は、完全一致になる

  • MatchMode.ANYWHERE
    • like %name%
  • MatchMode.START
    • like %name
  • MatchMode.END
    • like name%
  • MatchMode.EXACT(省略した場合と一緒)
    • like name