【发布时间】:2020-09-10 06:45:41
【问题描述】:
代码如下:
sql = " select '--', staff_no from staff where staff_no = ?";
Session session2 = HibernateUtil.getCurrentSession();
Query sqlQuery2 = session2.createSQLQuery(sql);
sqlQuery2.setParameter(0, "04415"); //error in this line
运行时出错
引起:org.hibernate.QueryParameterException:位置超出 声明的序数参数的数量。记住那个序数 参数是从 1 开始的!位置:1
被抛出,我知道这是由sql字符串中的'--'引起的,hibernate将其解释为sql注释,
我尝试使用
"select '\\-\\-', staff_no from ...."
这样可以成功运行,但是输出变成了\-\-,但是我想要的是--在输出中。
那么如何在hibernatecreateSqlQuery中转义'--'?
如果我运行,问题是由 select 子句中的“--”引起的
sql = " select '-', staff_no from staff where staff_no = ?";
没有发现问题。
【问题讨论】:
-
你使用什么数据库?
-
微软 sql 服务器
标签: hibernate native-sql