[英]java.sql.SQLException: Parameter #9 has not been set
你好,我正在尝试从休眠状态执行mssql存储过程。 程序有8个输入参数,没有输出。 但是我得到java.sql.SQLException:参数#9尚未设置执行。
<sql-query name="insertMyData" callable="true">
{ ? = call InsertMyData(?,?,?,?,?,?,?,?) }
</sql-query>
Java调用
Query query = m_entityManager.createNamedQuery("insertMyData");
query.setParameter(1, transaction.getGuid());
query.setParameter(2, new Date());
........指定其他参数
存储过程
CREATE PROC dbo.insertMyData
@ID uniqueidentifier,
...... 7 more parameters
AS
BEGIN
INSERT INTO dbo.TestData VALUES (
@ID,
........ 7 more parameters
)
END
我对先前的建议不满意:
根据https://forum.hibernate.org/viewtopic.php?f=1&t=986612
另一个有相同问题的人通过删除“?=”来解决此问题,因为没有为查询定义“返回”。 我建议您尝试相同的方法。
希望这可以帮助。
好像您已经忽略了第一个?
并呼吁setParameter
的只有8倍?
在过程调用中。
这是设置第一个参数的方式:
statement.registerOutParameter(1, Types.VARCHAR); //Assuming statement is your CallableStatement and return type of procedure is Varchar
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.