What I trying to achieve is using IN
query which is ignore uppercase or lower case in my QuerydslPredicateExecutor
, but I can't find the function and any docs about it. Here is what I do:
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)
As you can see, if we do query qTransStuffing.status.in(statusList)
this won't ignore case, how can I achieve IN query with ignore case?
There isn't really a better way than:
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)