如何在queryDsl
SELECT a.id,
(SELECT count(*) FROM ancestors_table t where t.ancestors LIKE CONCAT('%,',a.id,',%') )
FROM ancestors_table a;
我与LIKE CONCAT('%,',a.id,',%')
部分斗争。
解决方案
where(t.ancestors.like(
Expressions.stringTemplate("'%,'")
.concat(Expressions.stringTemplate("{0}" , a.id ))
.concat(Expressions.stringTemplate("',%'"))
))
答案 0 :(得分:4)
不完全确定,但是这样的事情:
where(t.ancestors.like(Expressions.asString("%").concat(a.id).concat("%")))
如果a.id
是一个数字,那么您需要将其转换为字符串:
where(t.ancestors.like(Expressions.asString("%").concat(a.id.stringValue()).concat("%")))