226 votos

Confusión:NotNull vsColumn (anulable = false)

  1. Cuando aparecen en un campo/getter de un @Entity, ¿cuál es la diferencia entre ellos? (I persistir la Entidad a través de Hibernate).

  2. ¿Qué marco y/o especificación de cada uno de ellos pertenece?

  3. @NotNull se encuentra dentro de javax.de validación.limitaciones. En su javax.de validación.limitaciones.NotNull javadoc dice "El anotado elemento no debe ser null" pero no habla de que el elemento de la representación en la base de datos, entonces, ¿por qué se añade la restricción de "Nullable=false" a la columna...?

Gracias!

310voto

Ryan Stewart Puntos 46960

@NotNull es un JSR 303 Bean Validation anotación. No tiene nada que ver con restricciones de base de datos en sí. Como la Hibernación es la implementación de referencia de JSR 303, sin embargo, de forma inteligente, se recoge en estas limitaciones y los traduce en restricciones de base de datos para usted, así que usted consigue dos por el precio de uno. @Column(nullable = false) es la JPA forma de declarar una columna que sea no nulo. I. e. el primero está destinado a la validación y el segundo para indicar el esquema de base de datos de detalles. Es sólo algunos de los extras (y bienvenida!) ayuda de Hibernación en la validación de las anotaciones.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X