Como cambiar de base de datos en tiempo de ejecucion con hibernate.
Que tal, espero alguien quiera compartir algo para resolver mi duda.
Estoy trabajando en un proyecto donde conecto a una base de datos mediante hibernate, tengo mi archivo de configuracion "hibernate,cgf.xml" con el cual me conecto y realizo operaciones en una base de datos.
El problema es que en cierto punto, es necesario conectar a una base de datos distinta y hacer algunas consultas.
Si es posible me compartan un pequeño ejemplo.
Muchas gracias y agradesco de antemano cualquier ayuda brindada,
- javier23's blog
- Inicie sesión o regístrese para enviar comentarios
Re: cambiar base de datos en tiempo de ejecución con hibernate
No creo se pueda cambiar la base de datos en tiempo de ejecución, tal vez la solución es conectar las BD que necesites usar.
Puedes ver esto Conectar múltiples BD en Hibernateo aqui: Configurar múltiples BD
Y que tal otro SessionFactory?
Y si crearas otro session factory apuntando a la otra base de datos?
Si usas Spring podrias usar un LocalSessionFactoryBuilder y hasta el xml te ahorras:
dos sessionfactories
Apuntar el session factory existente a una nueva base de datos no me parece una buena idea porque vas a tener un estado inconsistente entre la base de datos y tus objetos en memoria.
Pero tener dos session factories como ya mencionaron, es perfectamente posible y así puedes interactuar con ambas. Solamente recuerda si vas a pasar objetos entre una y otra, que tienes que desligarlos de la sessionfactory de donde provienen y registrarlos o refrescarlos usando la segunda sessionfactory.