博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring data jpa 调用oracle 存储过程
阅读量:6950 次
发布时间:2019-06-27

本文共 810 字,大约阅读时间需要 2 分钟。

hot3.png

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

在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;

注入:

@PersistenceContextprivate EntityManager entityManager;

方法实现:

@Transactional@Overridepublic void XXXX(String rowId) {       //调用无返回参数的存储过程   Query query = entityManager.createNativeQuery("{call XXXX('xxx', '同步业务数据', 'ADA',:rowId)}").setParameter("rowId",rowId);   query.executeUpdate();   }

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

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

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

转载于:https://my.oschina.net/u/2285090/blog/2050337

你可能感兴趣的文章
Lua学习小记——语言
查看>>
《R数据可视化手册》——2.5 绘制箱线图
查看>>
互联网企业安全高级指南3.7 如何看待SDL
查看>>
《Python数据挖掘:概念、方法与实践》一1.3 在数据挖掘中使用哪些技术
查看>>
《敏捷迭代开发:管理者指南》—第2章2.3节时间箱迭代开发
查看>>
《领域驱动设计:软件核心复杂性应对之道(修订版)》—第2章 2.3节一个团队,一种语言...
查看>>
Linux 有问必答: 如何在Linux中加入cron任务
查看>>
PostgreSQL数据保留窗口功能的使用
查看>>
Vmware 安装 Fedora 18 注意事项
查看>>
《C++ Primer Plus(第6版)中文版》——1.2 C++简史
查看>>
使用git遇到的问题汇总
查看>>
《Python极客项目编程 》——第2章 万花尺 2.1 参数方程
查看>>
《C++游戏编程入门(第4版)》——1.2 编写第一个C++程序
查看>>
《黑客秘笈——渗透测试实用指南(第2版)》—第1章1.6学习
查看>>
SpringBoot多跨域请求的支持(JSONP)
查看>>
几个Cache方案的比较
查看>>
【云栖大会】创无止境 YunOS云栖大会诠释万物互联
查看>>
Python基础教程
查看>>
MySQL · 特性分析 · 执行计划缓存设计与实现
查看>>
Java基础知识回顾--正则表达式
查看>>