我的项目使用的是Spring Boot,Spring Data JPA 其中Spring已经封装好了事务,在注解@Transactional中,自动执行事务,出异常自动回滚,但在使用的时候会遇到一些问题:
在多个方法中使用@Transactional,其中一个方法运行时候报错,但是数据却插进去了,但是其他两个方法没有;有时候抛了异常,却不会回滚;方法嵌套的时候执行报错……
查阅了一些资料后,得知是没有正确使用Spring的@Transactional。
下面借用我查到的别人的博客中的例子来说明Spring的@Transactional到底怎么用:
@Service
public class SysConfigService {
@Autowired
private SysConfigRepository sysConfigRepository;
public SysConfigEntity getSysConfig(String keyName) {
SysConfigEntity entity = sysConfigRepository.findOne(keyName);
return entity;
}
public SysConfigEntity saveSysConfig(SysConfigEntity entity) {
if(entity.getCreateTime()==null){
entity.setCreateTime(new Date());
}
return sys