prefacio
Tengo el requisito de que los parámetros pasados no puedan estar vacíos. De hecho, significa que deben pasarse. Le pregunté a los superiores de nuestra empresa y me pidieron que escribiera @Blank. Después de escribirlo, seguí informando un error. : Mi código es por ejemplo HV000030: No validator could be found for constraint 'javax.validation.constraints.NotBlank' validating type 'java.lang.Integer'. Check configuration for 'pageSize'
:
@Data
public class QueryVideoPageDTO {
private String userName;
@NotNull(message = "pageSize不能为空")
@Min(value = 1)
private Integer pageSize;
@NotBlank(message = "pageNum不能为空")
@Min(value = 1)
private Integer pageNum;
}
Solución: reemplace @NotBlank con @NotNull
@Data
public class QueryVideoPageDTO {
private String userName;
@NotNull(message = "pageSize不能为空")
@Min(value = 1)
private Integer pageSize;
@NotBlank(message = "pageNum不能为空")
@Min(value = 1)
private Integer pageNum;
}
la diferencia
Mire directamente la explicación oficial:
@No nulo
Significa que el atributo que utiliza esta anotación no puede ser nulo y puede usarse en cualquier tipo de atributo.
@No vacío
Significa que el atributo que usa esta anotación no puede ser nulo o una cadena vacía (longitud <= 0); se puede usar en cadenas, colecciones de colecciones, colecciones de mapas y matrices de matrices;
@NoEnBlanco
Significa que el atributo de esta anotación no puede ser nulo y debe contener una cadena de caracteres que no estén en blanco (longitud >= 0), que se puede usar en cadenas.
Resumir
@NotNull: se puede usar en cualquier tipo y no se permite que el valor sea nulo
@NotEmpty: se puede usar en cadenas, colecciones de colecciones, colecciones de mapas, matrices de matrices; no se permite que el valor sea nulo y la cadena de longitud < = 0
@NotBlank: solo se puede usar en Se usa en cadenas; el valor no debe ser nulo y la longitud de la cadena debe ser > 0. Las cadenas en blanco como espacios, retornos de carro y tablas no funcionarán~