您的位置:首页 > 编程语言 > Java开发

玩转spring boot——结合JPA事务

2017-01-04 13:04 645 查看
接着上篇

[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系列目录
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: