两列之间带有 Like 的 CriteriaBuilder 查询
Posted
技术标签:
【中文标题】两列之间带有 Like 的 CriteriaBuilder 查询【英文标题】:CriteriaBuilder query with Like between two columns 【发布时间】:2018-07-30 20:58:44 【问题描述】:我正在尝试使用 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
,因为我使用的是列名而不是设置值。
【问题讨论】:
你能展示你传递给 column2 的内容吗? 【参考方案1】:builder.like(column1, builder.concat("%",builder.concat(column2,"%"));
【讨论】:
谢谢,就这样。我忽略了 concat 函数,认为它做了其他事情,应该更仔细地看!以上是关于两列之间带有 Like 的 CriteriaBuilder 查询的主要内容,如果未能解决你的问题,请参考以下文章