【发布时间】:2016-04-20 14:47:49
【问题描述】:
我正在使用 Spring MVC 编写一个带有数据库后端的 RESTful Web 服务。我的保存例程包含在 try/catch ...
private void saveData() {
try {
service.saveReport(xmlData);
}
catch(DataAccessException e) { // Spring's DataAccessException
throw new MyException();
}
}
这适用于数据库错误,例如违反唯一约束。
但由于我的代码中的错误,我目前正在收到 Hibernate 的 NonUniqueObjectException。
但是我很好奇,为什么 Spring 的 DataAccessException 没有“捕获” NonUniqueObjectException?我应该使用另一个 Spring 异常(除了 DataAccessException)来“捕获”这个 Hibernate 异常吗?
或者我当然可以自己捕获 Hibernate 异常。但我不知道 Spring 是否会/可以。
更新 -------- 我的 service.save(xmlData) 实际上不仅仅是“保存”,而是首先进行一些处理,将 XML 数据复制到正确的(列表)@Entity bean,然后循环遍历 Entity bean,保存每个。 Hibernate 异常发生在设置实体 bean 本身期间,而不是在实际 dao.save(entityBean) 期间。
谢谢! 克里斯
【问题讨论】:
标签: java spring hibernate spring-mvc