Actualmente estoy trabajando en una aplicación que utiliza Hibernate y queremos poder insertar columnas y tablas sobre la marcha, es decir, en tiempo de ejecución, y continuar trabajando con la aplicación sin tener que reiniciarla. Actualmente estamos creando entidades, pero aún no las estamos usando. Tenemos código C antiguo (para ser migrado a Java algún día) que aloja nuestra lógica comercial y realiza llamadas a Java/Hibernate a través de JNI para obtener registros de la base de datos. Después de leer varios hilos (ver más abajo para los enlaces) y la referencia de hibernación 3.6 todavía tengo algunas preguntas:Agregar tablas y columnas en Hibernate sobre la marcha?
1. Si lo integrar SchemaUpdate en mi solicitud, como se ha mencionado aquí: http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/toolsetguide.html#toolsetguide-s1-6 ¿Debo entonces tengo que recrear el SessionFactory (que es una operación costosa) incluso si no usaría las entidades (como es actualmente el caso, pero en el futuro, por supuesto, esto cambiará)? Entonces, la sesión anterior será inválida, es decir, ¿tengo que migrar las entidades que ya están en la memoria y mantenidas por la sesión, a la nueva sesión? ¿Es esto posible de alguna manera? ¿Hibernate mantiene información más allá del ORM para las entidades sobre los esquemas? No sería una (la sesión, es decir, primer nivel) la invalidación de caché será suficiente, como se propone aquí: changes to the schema while hibernate is running
2. ¿Qué hay de alterar las columnas? Supongo que todavía está como @Bozho escribió: "Por desgracia, Hibernate no puede alterar las columnas". Hibernate to update table schema
Estas son mis preguntas hasta ahora, gracias por cualquier ayuda.
Otras referencias que he leído:
- gestión de tablas Unmapped con Hibernate http://blog.codehangover.com/536/
- Update database schema with hibernate
- Muy cerca de mi pregunta, menciones objetos de bases de datos auxiliares: Enhance Hibernate Database Schema?
- objetos de bases de datos auxiliares : http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html#mapping-database-object
- http://www.liquibase.org/
- http://www.alittlemadness.com/2006/08/28/incremental-schema-upgrades-using-hibernate/
¿Alguna vez encontró algunas soluciones para esto? También estoy interesado, parece que Grails puede hacerlo con su marco GORM. – codevour