我在oracle数据库中有一个使用两个参数的过程:
procedure some_procedure(int x, int y)
我的项目正在使用Spring Boot + Hibernate。因此,问题是如何使用Java代码中的批处理(例如100)执行此存储过程?
[我发现了一些使用@Procedure批注以及StoredProcedureQuery的示例-但这仅用于简单而不是批处理的调用。
而且有人可以解释我何时应该使用@Procedure注释而不是StoredProcedureQuery吗?
调用存储过程时,您将获得OUT参数,并且无法通过调用对其进行更改。如果存储过程返回ref_cursor,并且您想限制记录,请更改存储过程。使用StoreProcedureQuery,您将编写更多代码并手动管理调用过程(获取EntityManager,打开事务,进行调用,关闭事务...)。使用JPA存储库,您可以通过注释来描述过程。但是两种方法都有效。