1
在Spring中,JPA,Hibernate项目我试图让异常处理工作。对于下面的代码:Spring EntityManager休眠异常处理
@Repository("mscoutService")
public class MScoutServiceImpl implements MScoutService, Serializable {
@PersistenceContext
private EntityManager em;
...
@Override
@Transactional
public void deleteMission(Long missionId) {
try {
Mission mis = em.find(Mission.class, missionId);
em.remove(mis);
} catch (Exception e) {
handle_exception();
}
}
我试图抓住潜在的休眠/ JDBC/DB异常(例如,当实体依赖仍然存在删除将失败,org.springframework.orm.hibernate3.HibernateJdbcException)并执行一些操作。但是,捕获代码永远不会到达(在调试器中检查)。
我想这与春季管理这个办法的事,但我不知道,我只是如何em.remove()中捕捉异常......
任何帮助表示赞赏!
谢谢!添加em.flush()会导致异常处理程序被捕获,所以这解决了我的问题。 – Tom 2011-01-29 22:12:30