我使用spring-data和hibernate。现在我想对我的模型应用一些验证。在大多数情况下,我想应用简单验证,如空检查等。但在某些情况下,我想要应用更严格的验证,如电子邮件验证。我在Hibernate验证器中发现了非常有用的功能 - @Email注释。它的工作原理非常好,但现在的问题是:Spring数据和休眠 - 模型验证 - 异常转换
,如果我尝试保存空值的模型,那么下面的异常被抛出:
org.springframework.dao.DataIntegrityViolationException
但如果我尝试保存非空,但非电子邮件值的模型(假设asdfgh),那么下面的异常被抛出:
javax.validation.ConstraintViolationException
我很想看到在这两种情况下只有一种例外,因为在这两种情况下,模型没有通过验证,我想只是我的异常担心只有一个例外类型处理代码。
我试图将PersistenceExceptionTranslationPostProcessor添加到我的bean配置中,但它看起来不会改变任何东西。
你知道如何“统一”这个例外吗?
型号:
@Entity
public class ValidationModel {
...
@Email
@Column(nullable = false)
private String email;
...
}
库:
public interface ValidationModelRepository extends JpaRepository<ValidationModel, Long> {
}
啊你是对的!我怎么能忘记呢? :) 谢谢! –