玩转spring boot——结合JPA事务
2017-01-04 13:04
645 查看
接着上篇
[b]一、准备工作[/b]
修改pom.xml文件
App.java
运行效果:
添加数据
点击保存按钮,并观察数据是否回滚:
虽然抛出异常,但数据并未回滚。
[b]二、实现事务[/b]
这时,我修改OrderDao类,增加@Transactional(readOnly = false, rollbackFor = Throwable.class)注解:
继续添加数据:
按钮保存按钮,发现:数据回滚
代码下载:https://github.com/carter659/spring-boot-06.git
如果你觉得我的博客对你有帮助,可以给我点儿打赏,左侧微信,右侧支付宝。
有可能就是你的一点打赏会让我的博客写的更好:)
玩转spring boot系列目录
[b]一、准备工作[/b]
修改pom.xml文件
package com.github.carter659.spring06; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * 博客出处:http://www.cnblogs.com/GoodHelper/ * * @author 刘冬 * */ @SpringBootApplication public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } }
App.java
运行效果:
添加数据
点击保存按钮,并观察数据是否回滚:
虽然抛出异常,但数据并未回滚。
[b]二、实现事务[/b]
这时,我修改OrderDao类,增加@Transactional(readOnly = false, rollbackFor = Throwable.class)注解:
package com.github.carter659.spring06; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; import com.mysql.jdbc.StringUtils; @Repository @Transactional(readOnly = false, rollbackFor = Throwable.class) public class OrderDao { @Autowired private OrderRepository orderRepository; /** * 获取全部 * * @return */ public List<Order> findAll() { return orderRepository.findAll(); } /** * 持久化 * * @param entity * @return */ public void save(Order entity) throws Exception { // 持久化 orderRepository.save(entity); // 如果持久化成功,就抛出异常。如果开启事务,那么刚才持久化的数据应回滚 if (!StringUtils.isNullOrEmpty(entity.id)) throw new Exception("测试无法持久化第一条数据的异常"); } }
继续添加数据:
按钮保存按钮,发现:数据回滚
代码下载:https://github.com/carter659/spring-boot-06.git
如果你觉得我的博客对你有帮助,可以给我点儿打赏,左侧微信,右侧支付宝。
有可能就是你的一点打赏会让我的博客写的更好:)
玩转spring boot系列目录
相关文章推荐
- Java设计模式之——观察者模式(Observer)
- springmvc无法接收uploadify插件上传的数据
- 论:开发者信仰之“天下IT是一家“(Java .NET篇)
- 2016,Java成神初年
- java性能调优及问题追踪--Btrace的使用
- JAVA设计模式之适配器模式
- javaweb开发过程中小工具系列之支持事务的JdbcUtils
- org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dia
- eventloop & actor模式 & Java线程模型演进 & Netty线程模型 总结
- eclipse修改后运行的还是之前的代码
- spring-boot 连接池 druid 的配置及监控
- Java中的instanceof关键字
- java多线程系类:基础篇:08之join
- 利用JDK(1.6及以上版本)创建WebService
- 利用JDK(1.6及以上版本)创建WebService
- java transient简介
- HV000030: No validator could be found for type: java.lang.Integer
- Java中使用Lock控制线程同步
- springboot计划任务(定时任务)
- springboot多线程编程