在Transactional
注释的情况下,我无法在DAO类方法中处理异常。
服务类方法:
public String saveEmp(Employee emp) {
return empDao.saveEmp(emp);
}
DAO类方法:
public String saveEmp(Employee emp) {
try{
return getHibernateTemplate.save(emp);
}catch(DataIntegrityViolationException de){
if(nameExist(emp)){
throw new NameExistException();
}
}catch(Exception e){
throw new Exception(e.getstacktrace());
}
}
答案 0 :(得分:0)
修改服务类方法,如下所示
@Transactional(readOnly=false,propagation=Propagation.REQUIRED,rollbackfor={Throwable.class})
public String saveEmp(Employee emp) {
return empDao.saveEmp(emp);
}
现在,如果发生任何异常,Spring框架将负责回滚操作。我更喜欢将@Transactional注释放在服务层而不是DAO层方法。