如何在 QuerydslPredicateExecutor 中使用 IN 包含忽略大小写?

问题描述

我试图实现的是使用 IN 查询,它在我的 QuerydslPredicateExecutor 中忽略大写或小写,但我找不到该函数和任何有关它的文档。这是我所做的:

List<String> statusList = new ArrayList<String>();
statusList.add("ASSIGNED");
statusList.add("Got Permit");

QTransstuffing qTransstuffing = QTransstuffing.transstuffing;
BooleanExpression isCanceledFalse = qTransstuffing.cancelStuffing.eq(false);
BooleanExpression eStatusList = qTransstuffing.status.in(statusList);
Predicate predicate = isCanceledFalse.and(eStatusList);

transstuffingRepository.findAll(predicate)

如您所见,如果我们查询 qTransstuffing.status.in(statusList) 这将不会忽略大小写,我如何使用忽略大小写来实现 IN 查询

解决方法

没有比这更好的方法了:

List<String> statusList = new ArrayList<String>();
statusList.add("ASSIGNED");
statusList.add("GOT PERMIT");

QTransStuffing qTransStuffing = QTransStuffing.transStuffing;
BooleanExpression isCanceledFalse = qTransStuffing.cancelStuffing.eq(false);
BooleanExpression eStatusList = qTransStuffing.status.upperCase().in(statusList);
Predicate predicate = isCanceledFalse.and(eStatusList);

transStuffingRepository.findAll(predicate)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...