【发布时间】:2013-06-13 15:10:50
【问题描述】:
您好,我正在尝试从休眠状态执行 mssql 存储过程。程序有 8 个输入参数,没有输出。但是我得到 java.sql.SQLException: Parameter #9 has not be set whuli execution.
<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
【问题讨论】:
-
也许删除
call之前的? =? -
您的查询中有九个
?...九个参数。 -
在这种情况下,我在 org.hibernate.loader.custom.CustomLoader$Metadata.
(CustomLoader.java:544) 在 org.hibernate.loader.custom 处得到了 NPE java.lang.NullPointerException .CustomLoader.autoDiscoverTypes(CustomLoader.java:517) 在 org.hibernate.loader.Loader.getResultSet(Loader.java:1817) 在 org.hibernate.loader.Loader.doQuery(Loader.java:697) 在 org.hibernate。 loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259) at org.hibernate.loader.Loader.doList(Loader.java:2228) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2125) .... ........
标签: java sql-server hibernate