【问题标题】:How to use IN contains ignore case in QuerydslPredicateExecutor?如何在 QuerydslPredicateExecutor 中使用 IN 包含忽略大小写?
【发布时间】:2021-05-13 18:10:58
【问题描述】:

我试图实现的是使用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查询?

【问题讨论】:

    标签: java spring spring-boot querydsl


    【解决方案1】:

    没有比这更好的方法了:

    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)
    

    【讨论】:

      猜你喜欢
      • 2012-12-10
      • 2021-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多