Java 两列之间带有Like的CriteriaBuilder查询
我正在尝试使用CriteriaBuilder创建一个查询,其中需要使用like比较两个列 (仅显示代码的相关部分) 查询是这样构建的:Java 两列之间带有Like的CriteriaBuilder查询,java,jpa,criteria-api,Java,Jpa,Criteria Api,我正在尝试使用CriteriaBuilder创建一个查询,其中需要使用like比较两个列 (仅显示代码的相关部分) 查询是这样构建的:builder.like(column1,column2)其中column1和column2都是表达式类型 我的问题是找不到向查询中添加通配符的方法。这是生成的查询: where saldodocum.NU_DOCUMENTO_ORIGINAL like substring(saldodocum.NU_DOCUMENTO, 5, 3) 我需要的是: where
builder.like(column1,column2)代码>其中column1
和column2
都是表达式类型
我的问题是找不到向查询中添加通配符的方法。这是生成的查询:
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实现这一点?我无法将%
添加到列2
,因为我使用的是列名而不是设置值。builder.like(column1,builder.concat(“%”),builder.concat(column2,“%”);
builder.like(column1,builder.concat(%”),builder.concat(column2,“%”)
你能展示你传递给第2列的内容吗?你能展示你传递给第2列的内容吗?谢谢,这就可以了。我忽略了concat函数,认为它做了其他事情,应该仔细看!谢谢,这就可以了。我忽略了concat函数,认为它做了其他事情,应该仔细看!