java – 我在hibernate中使用LikeExpression已经过期(hibernate 3.5.5)

看起来它不适用于ignorCase.
第一个断言返回true.第二 – 错误.有任何想法吗?

EntityManager entityManager = (EntityManager) applicationContext.getBean("entityManager");
HibernateTemplate hibernateTemplate = entityManager.getHibernateTemplate();
int size = hibernateTemplate.find("from Source where caption like '%Вход%'").size();
System.out.println("By Query: " + size);
assertTrue(size > 0);

DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Source.class);
detachedCriteria.add(Restrictions.like("caption", "Вход", MatchMode.ANYWHERE).ignoreCase());
List list = hibernateTemplate.findByCriteria(detachedCriteria);
System.out.println("By DC: " + list.size());
assertTrue(list.size() > 0);
最佳答案
试试ilike(“caption”,“Вход”,MatchMode.ANYWHERE)而不是喜欢(..).ignoreCase()

http://www.dil.univ-mrs.fr/~massat/docs/hibernate-3.1/api/org/hibernate/criterion/Restrictions.html

转载注明原文:java – 我在hibernate中使用LikeExpression已经过期(hibernate 3.5.5) - 代码日志