Estoy tratando de desarrollar un arranque Spring con MongoDB y mi problema es que no quiero que un usuario ingrese el valor vacío o null de la base de datos para algún campo.
Ya probé la opción que encontré en la web pero no funcionó.
Código:
@Data @Entity @Document(collection = "product") public class Product { @Id private String id; @NotEmpty private String name; @NotNull(message = "brand must not be null") private String brand; @NotNull(message = "barCode must not be null") private String barCode; @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) private LocalDate importDate; @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) private LocalDate expireDate; @NotNull(message = "price must not be null") private Double price; private Double deal; @NotNull(message = "the quantity must not be null") private Integer quantity; }Tu estas usando
@No nulo
Que se utiliza para la validación de un modelo.
Para omitir el almacenamiento de valores null en la base de datos , debe usar:
@Column(nullable=false) private String brand;ACTUALIZAR :
Parece que su esquema ya ha sido generado.
No compartió la configuración de la base de datos de su proyecto.
Si está utilizando Spring Boot, debe establecer en application.properties propiedades adicionales para que funcione:
spring.jpa.show-sql=true spring.jpa.properties.hibernate.check_nullability=true Sin embargo, ayudará a no almacenar valores null .
Para evitar almacenar valores vacíos, debe agregar campos de cadena:
@Size(min=1) Si desea validar Integer o Double que tienen valores superiores a 0 , use @Min :
@Min(value = 1L, message = "The price must be positive") private Double price;