我正在尝试使用CriteriaBuilder创建一个查询,我需要使用比较来比较两列。
(仅显示代码的相关部分)
查询构建如下: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
,因为我使用的是列名而不是设置值。
答案 0 :(得分:3)
builder.like(column1, builder.concat("%",builder.concat(column2,"%"));