如何编写此查询 queryDsl
SELECT a.id,
(SELECT count(*) FROM ancestors_table t where t.ancestors LIKE CONCAT('%,',a.id,',%') )
FROM ancestors_table a;
Run Code Online (Sandbox Code Playgroud)
我与这LIKE CONCAT('%,',a.id,',%')部分斗争。
解决方案
where(t.ancestors.like(
Expressions.stringTemplate("'%,'")
.concat(Expressions.stringTemplate("{0}" , a.id ))
.concat(Expressions.stringTemplate("',%'"))
))
Run Code Online (Sandbox Code Playgroud)
不完全确定,但像这样:
where(t.ancestors.like(Expressions.asString("%").concat(a.id).concat("%")))
Run Code Online (Sandbox Code Playgroud)
如果a.id是数字,则需要将其转换为字符串:
where(t.ancestors.like(Expressions.asString("%").concat(a.id.stringValue()).concat("%")))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9185 次 |
| 最近记录: |