springboot 实体 字段校验 校验内容是否是枚举属性
在Spring Boot中,可以使用javax.validation.constraints包中的注解来对实体的字段进行校验。如果要校验字段的内容是否是枚举属性,可以使用@EnumValidator注解。
首先,需要定义一个枚举类,其中包含所有的枚举属性。例如:
public enum Status {
SUCCESS,
FAILURE,
PENDING
}
然后,在实体类中的需要校验的字段上添加@EnumValidator注解,并指定枚举类的class属性。例如:
public class User {
@EnumValidator(enumClass = Status.class)
private String status;
// getter and setter
}
最后,在需要进行校验的地方,可以使用javax.validation.Validator类来进行校验。例如:
@RestController
public class UserController {
@Autowired
private Validator validator;
@PostMapping("/users")
public ResponseEntity<String> createUser(@RequestBody User user) {
Set<ConstraintViolation<User>> violations = validator.validate(user);
if (!violations.isEmpty()) {
// 校验失败
return ResponseEntity.badRequest().body("Invalid user");
}
// 校验通过,继续处理
// ...
return ResponseEntity.ok("User created");
}
}
在上述例子中,如果请求的User对象中的status字段的值不属于Status枚举类中的任何一个属性,那么校验将会失败
原文地址: https://www.cveoy.top/t/topic/i1tE 著作权归作者所有。请勿转载和采集!