我如何从Java代码执行批处理存储过程调用?

问题描述 投票:0回答:1

我在oracle数据库中有一个使用两个参数的过程:

procedure some_procedure(int x, int y)

我的项目正在使用Spring Boot + Hibernate。因此,问题是如何使用Java代码中的批处理(例如100)执行此存储过程?

[我发现了一些使用@Procedure批注以及StoredProcedureQuery的示例-但这仅用于简单而不是批处理的调用。

而且有人可以解释我何时应该使用@Procedure注释而不是StoredProcedureQuery吗?

java hibernate spring-boot
1个回答
0
投票

调用存储过程时,您将获得OUT参数,并且无法通过调用对其进行更改。如果存储过程返回ref_cursor,并且您想限制记录,请更改存储过程。使用StoreProcedureQuery,您将编写更多代码并手动管理调用过程(获取EntityManager,打开事务,进行调用,关闭事务...)。使用JPA存储库,您可以通过注释来描述过程。但是两种方法都有效。

© www.soinside.com 2019 - 2024. All rights reserved.