我希望password的NotNull不影响username的Size判断
时间: 2023-12-01 19:03:28 浏览: 42
如果你希望 `password` 字段的 `@NotNull` 校验不影响 `username` 字段的 `@Size` 校验,你可以将这两个注解分别放在不同的分组中,并在需要校验的时候指定要校验哪个分组。
下面是一个示例代码:
```java
public interface FirstGroup {}
public interface SecondGroup {}
public class UserForm {
@NotNull(groups = FirstGroup.class)
private String username;
@NotNull(groups = SecondGroup.class)
@Size(min = 6, max = 20, groups = SecondGroup.class)
private String password;
// ... other fields and methods
}
```
在这个例子中,我们将 `username` 字段的 `@NotNull` 校验注解放在了 `FirstGroup` 分组中,将 `password` 字段的 `@NotNull` 和 `@Size` 校验注解都放在了 `SecondGroup` 分组中。
接下来,我们可以在需要校验的时候指定要校验哪个分组,比如:
```java
@PostMapping("/user")
public void createUser(@Validated(FirstGroup.class) @RequestBody UserForm form) {
// ... create user
}
```
在这个例子中,我们使用了 `@Validated` 注解来校验 `UserForm` 对象,并指定了要校验 `FirstGroup` 中的注解。这样,即使 `password` 字段的 `@NotNull` 校验不通过,也不会影响 `username` 字段的校验。
综上所述,将不同的校验注解放在不同的分组中,并在需要校验的时候指定要校验哪个分组,可以很方便地实现不同字段之间的独立校验。
阅读全文