Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

¿El atributo 'direccion' del record 'DatosActualizacionMedico' no debería tener la anotación @Valid?

Esto para que, si el usuario quiere actualizar la dirección, se verifique que las validaciones propias de la dirección sean correctas.
Lo que hace el ingeniero Bruno funciona muy bien pero creo que como buena práctica de programación estaría bien colocarlo. Quedaría así:

package med.voll.api.domain.medico;

import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;

import med.voll.api.domain.direccion.DatosDireccion;

public record DatosActualizacionMedico(
        @NotNull Long id,
        String nombre,
        String telefono,
        @Valid DatosDireccion direccion 
) {}
2 respuestas
solución!

¡Hola Yahadad!

Tienes razón en que añadir la anotación @Valid al atributo direccion en el record DatosActualizacionMedico podría ser una buena práctica para asegurarse de que las validaciones específicas de la dirección se apliquen correctamente cuando se actualice. Esto es especialmente útil si DatosDireccion tiene sus propias restricciones de validación que deseas que se verifiquen automáticamente.

Al incluir @Valid, le estás diciendo a Spring que debe validar el objeto DatosDireccion cuando sea parte de una actualización. Esto significa que si DatosDireccion tiene anotaciones de validación, como @NotNull o @Size, estas se aplicarán automáticamente al actualizar la dirección.

Tu sugerencia de código es correcta:

public record DatosActualizacionMedico(
        @NotNull Long id,
        String nombre,
        String telefono,
        @Valid DatosDireccion direccion 
) {}

Este enfoque ayuda a mantener la consistencia de los datos y asegura que cualquier cambio en la dirección cumpla con las reglas de validación definidas. Sin embargo, siempre es importante probar estas implementaciones para asegurarse de que funcionen como se espera en tu aplicación específica.

Espero haber ayudado y buenos estudios!

Muchas gracias por aclarar mi duda, ingeniero Eric.
Ahora todo me queda más claro.