我正在使用 Spring MVC 和 hibernate 开发一个 Web 应用程序以实现持久性。给定我的 DAO,其中 GenericDao 具有 SessionFactory 成员属性:
@Repository
public class Dao extends GenericDao {
public void save(Object o) {
getCurrentSession().save(o);
}
}
和一个服务类
@Service
public class MyService {
@Autowired
Dao dao;
@Transactional
public void save(Object o) {
dao.save(o);
}
}
如果发生持久性异常(约束、重复等),我想通知我的用户。据我所知,@Transactional
注释仅在异常冒泡并且事务管理器回滚时才有效,因此我不应该在该方法中处理异常。我应该在哪里以及如何捕获在 DAO 中发生的异常,以便我可以将它直接呈现给我的用户,或者包含在我自己的异常中?
我想使用spring的事务支持。