Cambiar base de datos definida en hibernate.cfg.xml

Buenas tardes. Una pregunta, en el archivo de configuración de Hibernate yo defino la base de datos que deseo usar, hasta ahí todo bien. Mi duda es, en algún punto del programa existe una manera de cambiar de base de datos?es decir, cambiar momentáneamente la base de datos definida en Hibernate.cfg.xml por otra?Es que necesito conectarme a una BD ajena a mi portal en un módulo específico y no puedo unir las 2 BD en una.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

No es cambio, necesitas 2 conexiones

A menos que tengas una aplicación de un solo usuario o que sea procesamiento por lotes, no tendría ningún sentido cambiar momentáneamente a otra base de datos para hacer algo en un módulo, porque usuarios de los otros módulos de repente no podrían ver los datos de la base de datos a la que estaba tu app conectada antes.

Necesitas tener dos DataSources, uno a cada base de datos, y dos SessionFactory de Hibernate. Una la usas en toda tu aplicación y otra la usas solamente en el módulo que dices. Y para cargar eso pues necesitas dos archivos de configuración de hibernate.

Con ayuda de Spring eso se vuelve muy simple porque generalmente la configuración de Hibernate nada más hace referencia a entidades y demás pero no a conexión a la base de datos; eso se configura directo en la SessionFactory que se configura como bean en un application context. Puedes definir dos SessionFactory, con la misma config ambos en lo que respecta a entidades y relaciones, etc pero cada uno con referencia a un DataSource distinto (que pueden estar definidos localmente o ser referencias a datasources definidos en tu contenedor).

Gracias por

Gracias por responder!entiendo la idea y tienes razón pero estoy un poco perdida, Te cuento: Estoy trabajando en Java, con ZK en Eclipse. Tengo mi archivo de configuración de hibernate y mi clase hibernateUtil donde defino el sessionFactory como sigue: public class HibernateUtil {

        private static final SessionFactory sessionFactory;
        static {
                sessionFactory = new Configuration().configure().buildSessionFactory();
        }
       
        public static SessionFactory getSessionFactory(){
                return sessionFactory;
        }

en hibernate.cfg.xml como sabes defino:

<session-factory>

        <!-- Database connection settings -->
        <property name="connection.driver_class">org.gjt.mm.mysql.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/PortalWeb</property>
   .
   .
   .

Como ves no tengo definida la conexión a la BD en el SessionFactory sino en el archivo de configuración de hibernate. ¿Qué debo hacer? Gracias!