Sot*_*lis 6 java spring hibernate spring-mvc
我正在使用Spring MVC开发一个Web应用程序,并为保持持久性而休眠。给我的DAO,其中GenericDao具有SessionFactory成员属性:
@Repository
public class Dao extends GenericDao {
public void save(Object o) {
getCurrentSession().save(o);
}
}
Run Code Online (Sandbox Code Playgroud)
还有一个服务班
@Service
public class MyService {
@Autowired
Dao dao;
@Transactional
public void save(Object o) {
dao.save(o);
}
}
Run Code Online (Sandbox Code Playgroud)
我想通知我的用户是否发生持久性异常(约束,重复等)。据我所知,@Transactional注释仅在异常冒泡且事务管理器回滚时才起作用,因此我不应该在该方法中处理异常。我应该在哪里以及如何捕获DAO中会发生的异常,以便可以直接呈现给用户或将其包装在我自己的异常中?
我想使用spring的交易支持。
Spring提供了异常处理程序。
因此,您的控制器中可以有类似的内容来处理ConstraintViolationException
@ExceptionHandler(ConstraintViolationException.class)
public ModelAndView handleConstraintViolationException(IOException ex, Command command, HttpServletRequest request)
{
return new ModelAndView("ConstraintViolationExceptionView");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8163 次 |
| 最近记录: |