Primavera de arranque no validar objeto incorporado en la Entidad

Connor Brady:

Estoy intentando enviar una solicitud POST a mi API REST. Todos los campos como el nombre, descripción, etc ... El trabajo como sea necesario y validar adecuadamente utilizando los validadores como @NotNull. Sin embargo, cuando se trata del objeto incrustado, no de los campos están validando. No se mostrará un error cuando ninguno de los campos de ubicación se pasan y por defecto sólo a 0

He intentado usar las anotaciones @Valid como se ha mencionado en críticas anteriores, sin embargo, esto todavía parece no haber funcionado.

Entidad

@Entity
@Table(name = "loos")
public class Loo implements Serializable {

    private static final long serialVersionUID = 9098776609946109227L;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    @Column(name = "uuid", columnDefinition = "BINARY(16)")
    private UUID uuid;

    @NotNull(message = "Name cannot be null")
    @Column(name = "name")
    private String name;

    @NotNull(message = "Description cannot be null")
    @Type(type="text")
    @Column(name = "description")
    private String description;

    @NotNull(message = "Location cannot be null")
    @Embedded
    @AttributeOverrides({ @AttributeOverride(name = "lat", column = @Column(name = "location_lat")),
    @AttributeOverride(name = "lng", column = @Column(name = "location_lng")) })
    @Valid
    private LatLng location;

Clase LatLng


@Embeddable
public class LatLng {

    @NotNull(message = "Lat cannot be null")
    private double lat;

    @NotNull(message = "Lat cannot be null")
    private double lng;

    protected LatLng() {
    }

    public double getLat() {
        return this.lat;
    }

    public double getLng() {
        return this.lng;
    }

}

Yo habría esperado que el mensaje de error para el interior de la clase LatLng decir "LatLng - lat se requiere" o algo así. En cambio, la operación continuará y justo por defecto los valora a 0

Vivekkurian:

Para los tipos de datos primitivos, tendrá valores por defecto. En su caso doble tendrá un valor predeterminado 0.0d. Así que cuando la comprobación de si el valor es válido usando NotNull, será válida.

Puede cambiar los tipos de datos primitivos a su clase de contenedor, como a continuación. (El doble a doble)

@NotNull(message = "Lat cannot be null")
private Double lat;

@NotNull(message = "Lat cannot be null")
private Double lng;

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=231031&siteId=1
Recomendado
Clasificación