问题描述
我试图实现的是使用 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)