在两列之间使用 Like 的 CriteriaBuilder 查询
CriteriaBuilder query with Like between two columns
我正在尝试使用 CriteriaBuilder 创建查询,我需要使用 like 比较两列。
(仅显示代码的相关部分)
查询是这样构建的:builder.like(column1, column2);
其中 column1
和 column2
都是 Expression
类型。
我的问题是我找不到将通配符添加到查询中的方法。这是生成的查询:
where saldodocum.NU_DOCUMENTO_ORIGINAL like substring(saldodocum.NU_DOCUMENTO, 5, 3)
而我需要的是:
where saldodocum.NU_DOCUMENTO_ORIGINAL like '%' + substring(saldodocum.NU_DOCUMENTO, 5, 3) + '%'
有没有办法使用 CriteriaBuilder 实现此目的?我无法将 %
添加到 column2
,因为我使用的是列名而不是设置值。
builder.like(column1, builder.concat("%",builder.concat(column2,"%"));
我正在尝试使用 CriteriaBuilder 创建查询,我需要使用 like 比较两列。
(仅显示代码的相关部分)
查询是这样构建的:builder.like(column1, column2);
其中 column1
和 column2
都是 Expression
类型。
我的问题是我找不到将通配符添加到查询中的方法。这是生成的查询:
where saldodocum.NU_DOCUMENTO_ORIGINAL like substring(saldodocum.NU_DOCUMENTO, 5, 3)
而我需要的是:
where saldodocum.NU_DOCUMENTO_ORIGINAL like '%' + substring(saldodocum.NU_DOCUMENTO, 5, 3) + '%'
有没有办法使用 CriteriaBuilder 实现此目的?我无法将 %
添加到 column2
,因为我使用的是列名而不是设置值。
builder.like(column1, builder.concat("%",builder.concat(column2,"%"));