Tengo una aplicación que usa servlets/JSP de Java. Hay varios clientes que usan mi aplicación, sin embargo, cada cliente tiene una base de datos separada. Todas las bases de datos tienen el mismo esquema. Me gustaría determinar qué conexión de base de datos usar en el momento en que un usuario inicia sesión en el sistema.¿Cómo me conecto a múltiples bases de datos usando JPA?
Por ejemplo, el cliente A inicia sesión, determino que el cliente A pertenece a la base de datos C, tomo la conexión para la base de datos C y continúo mi camino feliz.
Estoy usando JPA con Hibernate como mi proveedor de JPA. ¿Es posible hacer esto usando múltiples unidades de persistencia y determinando qué unidad usar en el momento del inicio de sesión? ¿Hay una forma mejor/preferida de hacer esto?
Editado para agregar: Estoy utilizando anotaciones y EJB para que el Contexto de persistencia se establezca en el EJB con @PersistenceContext (unitName = "blahblah"), ¿se puede determinar al momento de inicio de sesión? ¿Puedo cambiar UnitName en tiempo de ejecución?
Gracias
¿Quién dijo que el OP está utilizando Spring? :) –
Hice esta sugerencia antes de que se editara la pregunta. – Roman
Para ser justo, nunca mencioné a Spring en la publicación original, la edición simplemente agregó más información, pero esto me llevó a una respuesta que parece que va a funcionar, por lo que ha sido aceptada. – kgrad