最近使用spring的@Transcational注解做事务层管理,因是spring-boot 1.3.3,所以默认开启了事务管理;
1. 将注解加到了类上
package com.wangge.buzmgt.customTask.server;
@Transcational
@Service
public class ImplCustomTaskServe implements CustomTaskServer {
---若干方法--
}
然后里面有个关于Entity实体的操作,但无需持久化;刚开始没注意,但后来发现它确实被持久化了; 这就是个bug啦; 这个功能其实并不是必须的; 所以不推荐将它加在类上,也不推荐将它加在查询方法上;
- 用法1:持久化对象;
###2.将注解加到方法上
@Override
@Transactional(rollbackForClassName="Exception")
public void save(CustomTask customTask) throws Exception {
try{
--具体代码--
} catch (Exception e) {
log.debug(e);
e.printStackTrace();
throw e;
}
}
使用事务管理,主要是为了第二个功能:当出异常时,能进行事务回滚; 上面的例子的用法是正确的;
- 用法2:事务回滚;
- 表明当出现Exception及其子类的异常时,事务会回滚;
- 如果不加的话,出异常也不会回滚;