Pregunta

Me interesa cómo hibernate.hbm2ddl.auto = validar realmente funciona y estoy luchando para encontrar la documentación completa.

sistema de producción

Hemos descubierto recientemente se vio afectada por http: // opensource. atlassian.com/projects/hibernate/browse/HHH-3532 (Hibernate coincide con las claves externas en el nombre, en lugar de la firma y por lo volverá a crear para usted) y hibernate.hbm2ddl.auto = actualización está siendo eliminado de nuestra próxima liberación.

Yo sería muy feliz de simplemente deshacerse de hibernate.hbm2ddl.auto por completo y gestionar la base de datos a nosotros mismos. Sin embargo, no todos mis colegas comparten esta visión del mundo y algunos están dispuestos a añadir de nuevo en hibernate.hbm2ddl.auto = Validar.

a mí respecta esto va a golpear el mismo problema y estoy interesado en encontrar más documentación acerca de cómo funciona realmente esta validación. La documentación de Hibernate Comunidad ( http: // docs. jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html ) en realidad sólo hace referencia a los valores.

¿alguien tiene alguna punteros de documentación buena, o cualquier experiencia de la vida real de la utilización de validación en un sistema de producción?

¿Fue útil?

Solución

  

a mí respecta esto va a golpear el mismo problema y estoy interesado en encontrar más documentación acerca de cómo funciona realmente esta validación.

En mi opinión, la mejor documentación es el código fuente que se puede comprobar para ver lo que está ocurriendo exactamente. El método de referencia es org.hibernate.tool.hbm2ddl.SchemaValidator#validate().

Me pasó rápidamente a través del código y I no creo que las claves externas verifica SchemaValidator en la base de datos : Se comprueba la presencia de tablas, columnas, generadores id pero no las claves externas. Una prueba contra una base de datos de mascota parece confirmar este comportamiento:. Descartar una restricción FK no se rompe la validación del esquema (en otras palabras, los validador comprueba si la aplicación puede funcionar, no para la integridad referencial)

Ahora, HHH-3532 está marcado como fijo, ¿por qué no se actualiza a una versión más reciente de hibernación o, si se cambia la versión de Hibernate es demasiado pesado, ¿por qué no se aplica el parche para HHH-3532 mismo?

Tener que todo lo dicho, I no utilice hibernate.hbm2ddl.auto=update a bases de datos de producción de actualización, que utiliza secuencias de comandos de cambio. Pero I hibernate.hbm2ddl.auto=validate uso y estoy feliz con él.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top