Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用spring和hibernate调用存储过程_Java_Hibernate_Spring_Stored Procedures_Orm - Fatal编程技术网

Java 如何使用spring和hibernate调用存储过程

Java 如何使用spring和hibernate调用存储过程,java,hibernate,spring,stored-procedures,orm,Java,Hibernate,Spring,Stored Procedures,Orm,我收到一条错误消息,即java.lang.reflect.UndeclaredThrowableException和无效列名。您能告诉我为什么会出现此错误吗。我建议遵循文档中的建议: 不能将存储过程用于 冬眠,除非你遵循一些规则 程序/职能规则。如果是的话 不遵守那些规则他们不是 可与Hibernate一起使用。如果你还 你想使用这些程序吗 通过 会话。连接。规则是 每个数据库都不同,因为 数据库供应商有不同的存储空间 过程语义/语法 无法删除存储过程查询 呼叫 setFirstResult/s

我收到一条错误消息,即java.lang.reflect.UndeclaredThrowableException和无效列名。您能告诉我为什么会出现此错误吗。

我建议遵循文档中的建议:

不能将存储过程用于 冬眠,除非你遵循一些规则 程序/职能规则。如果是的话 不遵守那些规则他们不是 可与Hibernate一起使用。如果你还 你想使用这些程序吗 通过 会话。连接。规则是 每个数据库都不同,因为 数据库供应商有不同的存储空间 过程语义/语法

无法删除存储过程查询 呼叫 setFirstResult/setMaxResults

推荐的通话形式是标准的 SQL92:{?=调用 functionName}或{= 调用procedureName}。 不支持本机调用语法

对于Oracle,以下规则适用:

函数必须返回结果集。a的第一个参数 过程必须是返回的输出 结果集。这是通过使用 Oracle 9或10中的SYS_REFCURSOR类型。 在Oracle中,您需要定义一个REF 游标类型。有关详细信息,请参阅甲骨文文献 进一步资料。 对于Sybase或MS SQL server 以下规则适用:

该过程必须返回一个结果集。注意,由于 服务器可以返回多个结果 设置和更新计数,Hibernate将 迭代结果并取第一个 结果,该结果集作为其 返回值。其他一切都会好起来的 丢弃的。 如果您可以在您的过程中启用SETNOCOUNT ON,则很可能 效率更高,但这不是一个好办法 要求
一旦代码与规则一致,如果仍然出现错误,请提供完整的错误消息

请显示您尝试过的导致此错误的代码。