我在Spring / JPA中有我的应用程序。 Spring将数据库异常转换为运行时异常,称为DataAccessException。我对我的一个列有唯一约束,我想显示用户定义的消息,该列的值已经存在。但是当我使用e.getMessage();
检索消息时,它只是让我无法执行JDBC批量更新。哪个不够。
我可以按照数据库供应商返回的方式获取任何特定于数据库的错误代码,以便我可以基于此进行一些映射。
spring确实提供了sql-error-code.xml,我们可以使用它来翻译。但我使用的是jpatemplate而不是jdbcTemplate。 请帮助我,因为我是春季异常处理的新手。
提前致谢。
答案 0 :(得分:1)
引用弹簧手册:
Spring提供了从特定于技术的异常(如SQLException)到其自己的异常类层次结构的便捷转换,并将DataAccessException作为根异常。这些异常包装了原始异常,因此不会有任何可能丢失任何可能出错的信息的风险。
您应该捕获Spring DataIntegrityViolationException,然后设置对您的用户有意义的任何使用消息。
此处的完整个例列表http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/dao.html
答案 1 :(得分:0)
尝试使用Spring mvc进行Hibernate验证检查此link您可以自定义使用属性文件的消息