2

我在 Spring / JPA 中有我的应用程序。Spring 将数据库异常转换为运行时异常,称为 DataAccessException。我的一列有唯一约束,我想显示用户定义的消息,表明该列的值已经存在。但是当我使用它检索消息时e.getMessage();,只会给我无法执行 JDBC 批量更新。这是不够的。我能否以数据库供应商返回的方式获取任何特定于数据库的错误代码,以便我可以根据它进行一些映射。

spring 确实提供了 sql-error-code.xml ,我们可以使用它进行翻译。但我使用的是 jpatemplate 而不是 jdbcTemplate。请帮助我,因为我是春季异常处理的新手。

提前致谢。

4

1 回答 1

1

引用弹簧手册:

Spring 提供了从 SQLException 等特定于技术的异常到其自己的异常类层次结构的便捷转换,其中 DataAccessException 作为根异常。这些异常包含原始异常,因此永远不会有丢失任何可能出错的信息的风险。

您应该捕获 Spring DataIntegrityViolationException,然后设置对您的用户有意义的任何使用消息。

此处的完整异常列表http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/dao.html

于 2013-05-26T15:06:24.013 回答