CriteriaBuilder查询两列之间的Like

时间:2018-02-20 13:19:43

标签: java jpa criteria-api

我正在尝试使用CriteriaBuilder创建一个查询,我需要使用比较来比较两列。

仅显示代码的相关部分

查询构建如下:builder.like(column1, column2);其中column1column2都是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,因为我使用的是列名而不是设置值。

1 个答案:

答案 0 :(得分:3)

builder.like(column1, builder.concat("%",builder.concat(column2,"%"));