在违反约束的情况下显示用户友好消息的问题是,当将Hibernate的名称
ConstraintViolationException转换为Spring的名称时,约束名称会丢失
DataIntegrityViolationException。
但是,你可以自定义此转换逻辑。如果
LocalSessionFactoryBean用于访问Hibernate,则可以为其提供一个自定义项
SQLExceptionTranslator(请参阅参考资料
LocalSessionFactoryBean.jdbcExceptionTranslator)。该异常转换器可以将a
ConstraintViolationException转换为你自己的异常类,并保留约束名称。



