¿Hay un flujo de trabajo sencillo para generar un esquema de base de datos de clases con las asignaciones de hibernación?

StackOverflow https://stackoverflow.com/questions/3674322

  •  01-10-2019
  •  | 
  •  

Pregunta

Id como para definir mis objetos a continuación, utilizar hibernación para generar mi DDL a partir de esto. Pero parece que el flujo de trabajo sólo es real con Hibernate es generar un esquema datbase y técnicas de ingeniería inversa. ¿Estoy con ganas de hacer algo que no tiene sentido?

¿Fue útil?

Solución

Si hay un hibernate.hbm2ddl.auto propiedad. El documentación dice:

  

valida automáticamente o exportaciones de esquema DDL para la base de datos cuando se crea la SessionFactory. Con create-drop, el esquema de base de datos será dado de baja cuando la SessionFactory se cierre explícitamente.

     

por ejemplo. Validar | actualización | crear | crear-drop

Hay varias maneras de definir esta propiedad, dependiendo de cómo se configura su SessionFactory. La forma de hibernación es simplemente agregar:

<property name="hibernate.hbm2ddl.auto">update</property>

Otros consejos

  

Sin embargo, parece que el flujo de trabajo sólo es real con Hibernate es generar un esquema de base de datos y luego técnicas de ingeniería inversa.

No, en absoluto. Históricamente, Hibernate soporta varios enfoques:

  • De arriba hacia abajo:. Se empieza con el modelo de objetos, a continuación, crear metatdata mapeo ya sea con archivos XML o anotaciones y luego generar el esquema utilizando la herramienta hbm2ddl de Hibernate

  • bottom:. Se comienza con una base de datos existente y generan asignaciones y las clases de Java (o clases Java simplemente anotado) del esquema de base de datos utilizando hbm2hbmxml y hbm2java

  • Oriente a cabo:. Se comienza escribiendo mapeos XML Hibernate y generar las clases Java usando DDL y hbm2ddl y hbm2java respectivamente

  • reunirse en el centro: Tiene un modelo existente de Java y una base de datos existente. Hibernate utillaje puede no ayuda mucho aquí, usted es muy probable que las asignaciones de escritura a mano y hacer algo de refactorización de la base de datos o del código Java, o utilizar algún tipo de puente. Esta es la peor situación.

Así que, como hemos visto, Hibernate soporta varios flujos de trabajo y proporciona herramientas para ellos. Y en su caso, usted está buscando la herramienta llamada hbm2ddl (también conocido como SchemaExport, que es el nombre de la clase que implementa ella). Hay varias formas de utilizarlo:

  • Puede ejecutar SchemaExport mediante programación.
  • Usted puede permitir la exportación automática del esquema durante la creación SessionFactory estableciendo el hibernate.hbm2ddl.auto propiedad a un valor apropiado
  • Usted puede utilizar el <hbm2ddl> tarea Ant

Referencias

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