【问题标题】:querydsl - remove whitespace in the middle of a COLUMNquerydsl - 删除 COLUMN 中间的空格
【发布时间】:2014-12-26 06:44:16
【问题描述】:

有没有办法在 querydsl 中进行此查询?

SELECT *
FROM table
WHERE replace(column_name, ' ', '') = 'someValue';

QClass 中的 StringPath 没有 .replace() 函数,在测试之前有必要从 column_name 中删除某些字符(特别是 中间 中的空格)与someValue

示例column_name 内容:ABC, DEF, AB *

如果someValueABC,则应出现ABCAB*

【问题讨论】:

  • 你使用 Querydsl 和 JPA 还是 JDBC?
  • @TimoWestkämper 我们正在使用 JDBC。

标签: replace querydsl removing-whitespace


【解决方案1】:

您可以通过

表达替换调用
Expressions.stringTemplate("replace({0},'  ','')", columnPath)

【讨论】:

  • 这太棒了!我不知道这是可能的。这是最后的谓词:BooleanBuilder b = new BooleanBuilder().andAnyOf( Expressions.stringTemplate("replace({0},' ','')", columnPath).like(someValue.substring(0,2) Expressions.stringTemplate("replace({0},' ','')", columnPath).like(someValue.substring(0,1) + "*"), columnPath.eq(StringUtils.replaceWildcardChar(someValue)));Thanks。
  • 您好,如果我想从 columnValue 中替换空格、破折号和引号字符,我们该怎么做?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-25
  • 2020-01-05
  • 1970-01-01
  • 1970-01-01
  • 2023-02-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多