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