本文介绍了Hibernate JPA条件构建器忽略大小写查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何使用条件构建器执行类似的忽略大小写查询.对于description属性,我想做类似upper(description) like '%xyz%'
How to do a like ignore case query using criteria builder. For description property I want to do something like upper(description) like '%xyz%'
我有以下查询
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<Person> personCriteriaQuery = criteriaBuilder.createQuery(Person.class);
Root<Person> personRoot = personCriteriaQuery.from(Person.class);
personCriteriaQuery.select(personRoot);
personCriteriaQuery.where(criteriaBuilder.like(personRoot.get(Person_.description), "%"+filter.getDescription().toUpperCase()+"%"));
List<Person> pageResults = entityManager.createQuery(personCriteriaQuery).getResultList();
推荐答案
有一个CriteriaBuilder.upper()
方法:
personCriteriaQuery.where(criteriaBuilder.like(
criteriaBuilder.upper(personRoot.get(Person_.description)),
"%"+filter.getDescription().toUpperCase()+"%"));
这篇关于Hibernate JPA条件构建器忽略大小写查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!