当前位置: 首页 > 面试题库 >

如何在Spring中处理DataIntegrityViolationException?

颛孙安康
2023-03-14
问题内容

我需要在Spring
3.0应用程序中显示自定义消息。我有一个带有Hibernate的数据库,并且有几个约束。我对如何DataIntegrityViolationException妥善处理存有疑问。我想知道是否有一种方法可以将异常映射到属性文件中的消息集,因为可以在约束验证中进行。我可以以任何方式自动处理它,还是必须在每个控制器中捕获此异常?


问题答案:

在违反约束的情况下显示用户友好消息的问题是,当将Hibernate的ConstraintViolationException转换为Spring的时,约束名称会丢失DataIntegrityViolationException

但是,您可以自定义此转换逻辑。如果LocalSessionFactoryBean用于访问Hibernate,则可以为其提供一个自定义项SQLExceptionTranslator(请参阅参考资料LocalSessionFactoryBean.jdbcExceptionTranslator)。该异常转换器可以将a
ConstraintViolationException转换为您自己的异常类,并保留约束名称。



 类似资料:
  • 我有一个返回响应实体(输入流资源)的方法。在这个方法中,我根据文件名输入从文件中获取输入流,然后发送输入流资源作为响应。 代码段 我需要在这里关闭inputStream对象吗?如果我这么做,我会 IllegalStateException:已关闭消息。我需要明确关闭它们吗?否则容器会小心的。

  • 我对此做了一些研究,但结果相互矛盾。为了处理这个错误,有人说我需要在我的一个控制器中实现。 以下是一些链接: 如何处理MaxUploadSizeExceededExc的异常 使用Spring MVC处理MaxUploadSizeExceededExc的异常 http://www.raistudies.com/spring/spring-mvc/file-upload-spring-mvc-anno

  • 当我传递无效的json格式时,我得到了400个Http响应, 我想返回自定义的json消息而不是这样,有人能建议在Spring 4.1中该怎么办吗? 使用ControllerAdvision处理执行,但它不起作用。

  • 问题内容: 我想要一个文本区域,可以处理按 Tab 键的情况。 在默认情况下,如果您按 Tab 键,则焦点将离开文本区域。但是,当用户想要在文本区域中输入 Tab 键时会怎样呢? 我可以捕捉到此事件并将焦点返回到文本区域并将标签添加到 当前 光标位置吗? 问题答案:

  • 问题内容: 看来我应该这样做: 通过将其设置为来配置dispatcherServlet 但是,考虑到我没有XML配置,或者代码中没有任何各种初始化程序类(此答案提到),该怎么做? 在一个类中,我有一个像这样的方法,当前不会被调用。 Spring Boot 1.2.7.RELEASE; 一个简单的设置与Spring REST指南并没有太大区别 。 问题答案: 选项1:Spring Boot属性(仅适

  • 我正在制作Spring Boot和Thymeleaf web应用程序,我想向您咨询关于在数据库中持久化地址的建议。我的问题是如何存储这两个实体的地址。 我有一个和实体。 我应该在两个实体字段、、等中输入,还是创建一个新的实体,在那里我应该存储