database - 在单个事务中多次调用 1 个 DB2 存储过程
问题描述
这在 DB2 中可行吗?SP1 返回一个结果集。我正在尝试从 Java 客户端执行此操作。第一次调用返回结果集,但第二次调用没有。
我有以下要求。我需要在单个事务中进行 2 个或更多存储过程调用。如果任何调用失败,我需要回滚事务。对 SP 的第一次调用成功但每当我对存储过程进行第二次调用时我在 result.get("#result-set-1"); 处获取 Null .它不应该为空。但是当我将@Transactional 移动到存储库类(方法)时,它可以工作,但是两个 SP 调用显然都被视为单独的事务。但这不是我的要求。我该如何解决这个问题?
start transaction
call stored procedure SP1 n times .( n is variable)
commit transaction.
public class ServiceA{
@Transactional
void saveInDB()
{
for( int i =0 ; i< 2 ;i++)
{
repositoryA.save(list.get(i)
}
}
存储库类 RepositoryA 类如下
@Repository
public class RepositoryA {
public DataRetuned getData(String str)
{
Map<String, Object> result =
simpleJdbcCallFactory.execute
(
// pass required params here
);
List<DataRetuned> dataRetuned = (List<DataRetuned>) result.get("#result-set-1"); //result set returned
return dataRetuned;
解决方案
推荐阅读
- php - 本地主机 Wordpress 永久链接不起作用
- excel - Excel VBA在相邻单元格中查找具有最大值的字符串
- angular - 如何知道是否设置了 Observable 更改值或最终值
- javascript - Eslint 自定义导入订单
- php - PHP Array in Google Maps
- javascript - 期望在箭头函数 array-callback-return 结束时返回一个值
- typescript - 如何使用 TypeORM 在 NestJS 中实现分页
- php - 如何更新已经存在的mysql表
- android-studio - 如何防止 NotificationListener 断开连接?
- mysql - 串联|| 和 %