博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JPA事务回滚配置
阅读量:6382 次
发布时间:2019-06-23

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

 

 

1. 由spring框架自动化管理

public class ArticleAction {        @Autowired    private IArticleService articleService;    @Autowired    private IArticleClassService articleClassService;                @RequestMapping({
"/jpatest1.htm"}) @Transactional(rollbackFor = Exception.class,propagation=Propagation.REQUIRED) public ModelAndView jpatest1(HttpServletRequest request){ ModelAndView mv = new JModelAndView("jpatest.html"); ArticleClass articleClass = this.articleClassService.getObjById(CommUtil.null2Long(163843)); articleClass.setClassName("特色服务2222"); this.articleClassService.update(articleClass); Article article = this.articleService.getObjByProperty("mark", "join111"); article.setTitle(article.getTitle()+"2222"); this.articleService.update(article); mv.addObject("status","transaction success"); return mv; } @RequestMapping({
"/jpatest2.htm"}) @Transactional public ModelAndView jpatest2(HttpServletRequest request){ ModelAndView mv = new JModelAndView("jpatest.html"); ArticleClass articleClass = this.articleClassService.getObjById(CommUtil.null2Long(163843)); articleClass.setClassName("特色服务2222"); this.articleClassService.update(articleClass); Article article = this.articleService.getObjByProperty("mark", "join111"); article.setTitle(article.getTitle()+"2222"); this.articleService.update(article); mv.addObject("status","transaction success"); return mv; } }

 

 

2. 手动提交事务

public class ArticleAction {        @Autowired    private IArticleService articleService;    @Autowired    private IArticleClassService articleClassService;        /**     * JpaTransactionManager事务管理 .     */    @Resource(name = "transactionManager")    private JpaTransactionManager tm;        @RequestMapping({
"/jpatest.htm"}) @Transactional(value="transactionManager", rollbackFor = Exception.class) public ModelAndView jpatest(HttpServletRequest request){ ModelAndView mv = new JModelAndView("jpatest.html"); //事务开始 DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); def.setTimeout(30); //事务状态 TransactionStatus status = tm.getTransaction(def); try { //此处写持久层逻辑 ArticleClass articleClass = this.articleClassService.getObjById(CommUtil.null2Long(163843)); articleClass.setClassName("特色服务2222"); this.articleClassService.update(articleClass); Article article = this.articleService.getObjByProperty("mark", "join111"); article.setTitle(article.getTitle()+"2222"); this.articleService.update(article); tm.commit(status); mv.addObject("status","transaction success"); } catch (Exception e) { System.out.println("出现异常,开始回滚"+e); if(!status.isCompleted()){ tm.rollback(status); } //throw e; } return mv; } }

 

转载地址:http://vrwha.baihongyu.com/

你可能感兴趣的文章
Linux系统下常见性能分析工具的使用
查看>>
linux下QOS--理论篇
查看>>
一步一步学Silverlight 2系列(26):基本图形
查看>>
word无所不能之word连接数据库
查看>>
Wijmo 更优美的jQuery UI部件集:客户端更改C1GridView数据源
查看>>
详解 Windows下apache 实现 SSL
查看>>
从产品疑问到态度问题:808.8GB拷问西部数据
查看>>
cocos2d-x学习笔记16:记录存储1:CCUserDefault
查看>>
Windows Server 2012正式版RDS系列⒀
查看>>
infortrend ESDS RAID6 数据恢复过程
查看>>
基于CentOS5.3邮件系统(Windows AD+Slockd+Dspam)整合
查看>>
WPF/E CTP Quick Start - 第七部分:文本(翻译)
查看>>
求助:WPF不明内存泄露原因,头发都白了几根
查看>>
安全筛选器创建与管理
查看>>
将最小特权原则应用到 Windows XP 上的用户帐户
查看>>
学会战斗中成长 运用网络中的利器
查看>>
小结:linux下的FTP、DHCP、DNS和postfix
查看>>
C#转C++的一点分享
查看>>
ES搜索排序,文档相关度评分介绍——Field-length norm
查看>>
《播客》项目总结——web标准页面设计方面(转)
查看>>