带有jpa模板弹簧的异常翻译

问题描述 投票:2回答:1

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

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

提前感谢。

spring jpa exception-handling
1个回答
1
投票

引用弹簧手册:

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

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

这里是完整的例外列表http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/dao.html


0
投票

尝试通过spring mvc使用Hibernate验证(选中this link,您可以自定义消息以使用属性文件

© www.soinside.com 2019 - 2024. All rights reserved.