package com.rlovep.tx.ann;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@Service
public class DeptService {
@Resource(name="deptDao")
private DeptDao deptDao;
@Resource(name="logDao")
private LogDao logDao;
public void setLogDao(LogDao logDao) {
this.logDao = logDao;
}
public void setDeptDao(DeptDao deptDao) {
this.deptDao = deptDao;
}
/*
*事务控制:
*/
@Transactional(
readOnly=false,//读写事务
timeout=-1,//事务的超时时间不限制
isolation=Isolation.DEFAULT,//事务的隔离级别,数据库有的默认
noRollbackFor=ArithmeticException.class, // 遇到数学异常不回滚
propagation=Propagation.REQUIRED//事务的传播行为
)
public void save(Dept dept){
//第一次调用
deptDao.save(dept);;
logDao.insertLog();
//出现错误:应该回滚事务
int i=1/0;
deptDao.save(dept);
}
}