我的条件查询中有一段,我希望生成一个sql段作为
substring(manifest_url, instr(manifest_url, '?') - 14, 10)
final Path<String> manifestUrlPath = JpaUtils.getPath(SystemComponentTask::getManifestUrl, root);
final Expression<Integer> indexExp = cb.diff(cb.function("INSTR", Integer.class, manifestUrlPath, cb.literal("?")), 14);
cb.substring(manifestUrlPath, indexExp, cb.literal(10));
但是我发现(使用p6spy)生成的sql删除了第三个参数'cb.literal(10))'。
我通过生成代码进行调试,
org.hibernate.query.criteria.internal.expression.function.SubstringFunction
是生成这个sql段的类,在生成HQLQueryPlan之前一切都好,但是生成的HQLQueryPlan sqlString只是删除了第三个参数。
执行前还会出现警告“HHH000174:函数模板预期 3 个参数,但遇到 4 个参数”。
我调用criteria查询api有什么问题吗?