本文介绍了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条件构建器忽略大小写查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-13 03:49