无法处理 spring hibernate @transactional 方法中的异常

Not able to handle exception in spring hibernate @transactional method

Transactional 注释的情况下,我无法在 DAO class 方法中处理异常。

服务Class方法:

 public String saveEmp(Employee emp) {
    return empDao.saveEmp(emp);
 }

DAO Class 方法:

   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());
      }
   }

像这样修改您的服务class方法

 @Transactional(readOnly=false,propagation=Propagation.REQUIRED,rollbackfor={Throwable.class})
 public String saveEmp(Employee emp) {
    return empDao.saveEmp(emp);
 }

现在,如果发生任何异常 Spring 框架将负责回滚 operation.I 更喜欢将 @Transactional 注释放在服务层而不是 DAO 层方法上。