hql 查询中 concat 函数休眠的问题
Issue with concat function hibernate in hql query
我有一个带有动态值的 hql 查询
SELECT * from sample_view where (concat(course_id,'-',stu
_id)) in ('11-001'));
以上查询 returns 4 行,但相同的查询具有以下值 returns 没有
SELECT * from sample_view where (concat(course_id,'-',stu
_id)) in ('011-001'));
另外,当我执行以下这些查询时,它们都是 returns 4 行。
SELECT * from sample_view where course_id in ('011') and stu_id in ('001');
SELECT * from sample_view where course_id in ('11') and stu_id in ('001');
当输入的数字以 0 作为前缀时,我如何将 concat 函数设为 return 相同的值。在这方面的任何帮助将不胜感激。提前致谢
首先,不要在问题的开头使用串联技巧。使用对两列都进行检查的完整查询:
SELECT *
FROM sample_view
WHERE course_id = ? AND stu_id = ?;
如果您想忽略任一 ID 中的前导零,只需在将值绑定到语句之前去掉这些零即可,例如
String courseId = "011";
courseId = courseId.replaceFirst("^0+", "");
System.out.println(courseId); // 11
// bind course ID here to your statement
我有一个带有动态值的 hql 查询
SELECT * from sample_view where (concat(course_id,'-',stu
_id)) in ('11-001'));
以上查询 returns 4 行,但相同的查询具有以下值 returns 没有
SELECT * from sample_view where (concat(course_id,'-',stu
_id)) in ('011-001'));
另外,当我执行以下这些查询时,它们都是 returns 4 行。
SELECT * from sample_view where course_id in ('011') and stu_id in ('001');
SELECT * from sample_view where course_id in ('11') and stu_id in ('001');
当输入的数字以 0 作为前缀时,我如何将 concat 函数设为 return 相同的值。在这方面的任何帮助将不胜感激。提前致谢
首先,不要在问题的开头使用串联技巧。使用对两列都进行检查的完整查询:
SELECT *
FROM sample_view
WHERE course_id = ? AND stu_id = ?;
如果您想忽略任一 ID 中的前导零,只需在将值绑定到语句之前去掉这些零即可,例如
String courseId = "011";
courseId = courseId.replaceFirst("^0+", "");
System.out.println(courseId); // 11
// bind course ID here to your statement