Hola Lautaro,
Es una pregunta muy interesante y relevante. En realidad, no es redundante usar @NotNull/@NotBlank en tu código Java y "NOT NULL" en tu script SQL. Aquí está el porqué:
@NotNull/@NotBlank: Estas son validaciones a nivel de aplicación. Cuando se utilizan en el código Java, se está asegurando que los datos no sean nulos antes de que lleguen a la base de datos. Esto puede ser útil para proporcionar mensajes de error más específicos y amigables para el usuario.
"NOT NULL" en SQL: Esta es una restricción a nivel de base de datos. Asegura que, independientemente de lo que suceda en la aplicación, la base de datos no aceptará un valor nulo para ese campo.
Por lo tanto, aunque parezca que se está duplicando el esfuerzo, en realidad se está proporcionando dos niveles de seguridad para los datos. En un escenario ideal, las validaciones a nivel de aplicación deberían ser suficientes. Sin embargo, en el mundo real, los errores pueden ocurrir, y la restricción "NOT NULL" en la base de datos actúa como una red de seguridad adicional.
Espero que esto aclare tus dudas. Mucho éxito en todo lo que te propongas y si tienes alguna duda aquí estaremos para apoyarte.
¡Vamos juntos!
Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios.