jpa oracle boolean,spring data jpa 调用oracle 存储过程

需求:在某张表插入,修改时,调用一个存储过程同步数据

在controller层,XXX.saveOrUpdate(entity);方法的后面,

XXX.callXXXX(entity.getId);存储过程接口的定义,

存储过程调用的实现:

在service 定义接口 void callXXXX(String id);

在serviceImpl 实现:

导入:

import javax.persistence.EntityManager;

import javax.persistence.PersistenceContext;

import javax.persistence.Query;

注入:

@PersistenceContext

private EntityManager entityManager;

方法实现:

@Transactional

@Override

public void XXXX(String rowId) {

//调用无返回参数的存储过程

Query query = entityManager.createNativeQuery("{call XXXX('xxx', '同步业务数据', 'ADA',:rowId)}").setParameter("rowId",rowId);

query.executeUpdate();

}

因为我的项目存在事务的部分bug,导致无法在service中直接调用query.executeUpdate();

理解上面的做法的大佬可以直接省去接口的定义和实现过程,直接注入em进行调用存储过程,

如果你尝试这样做,我碰到有两个问题,一个是说没有加入事务,另一个问题是,无法共用一个事务,如果无法解决这两个问题,按照我上面的做法即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值