我有一个用户实体,它正在使用 Spring 验证注解 [已编辑 - Bean 验证规范],如下所示。
@NotEmpty(message = "{warn.null.user.password}")
private String password;
当我用于注册操作时,此验证是可以的,但我试图通过称为更新的不同操作使用相同的实体(用户),我想取消 @NotEmpty 注释。我该怎么做?
问候。
请您参考如下方法:
I have a User Entity and it's using Spring Validation Annotation as follow.
首先,它不是“Spring Validation Annotation”。这些是来自 Bean Validation Specification 的注释(称为 JSR-303 和 JSR-349)。一些非标准注释由验证提供程序(例如,Hibernate Validator)提供。
But I tried to use the same Entity(User) by different Action called Update and I want to void @NotEmpty Annotation
这可以通过使用注释的 groups
属性来实现。在第一种情况下,您将运行所有组,而在另一种情况下,您将只运行其中的一些组。不幸的是,规范(当前)不支持(因为 @Valid
不允许提供 groups
)。
这里是Spring的非标准注解@Validated
的地方来拯救:你可以用它指定验证组!
但它仅适用于 Controller 中的验证模型。在将实体保存到数据库之前,它不能用作验证,因为无法指定组(始终使用 Default
组)。
例如,您可以使用这个问题:Hibernate-validator Groups with Spring MVC