Unidades de persistencia en persistence.xml se crean durante la construcción de la aplicación. Como quiero cambiar la url de base de datos en tiempo de ejecución, hay alguna forma de modificar la unidad de persistencia en el tiempo de ejecución? Se supone que debo utilizar otra base de datos distinta de pre-encuadernada de uno después de distribuido.

Estoy usando EclipseLink (JPA 2.1)

¿El uso de cualquier Servidor?
Nop. Es independiente de la aplicación. Servidores de base de datos Oracle 12c y SQL Server 9.0.x

OriginalEl autor N K | 2013-09-03

3 Comentarios

  1. 29

    Mantener la persistencia de la unidad de archivo (Persistence.xml) como es. Puede reemplazar las propiedades de la siguiente manera.

    EntityManagerFactory managerFactory = null;
    Map<String, String> persistenceMap = new HashMap<String, String>();
    
    persistenceMap.put("javax.persistence.jdbc.url", "<url>");
    persistenceMap.put("javax.persistence.jdbc.user", "<username>");
    persistenceMap.put("javax.persistence.jdbc.password", "<password>");
    persistenceMap.put("javax.persistence.jdbc.driver", "<driver>");
    
    managerFactory = Persistence.createEntityManagerFactory("<current persistence unit>", persistenceMap);
    manager = managerFactory.createEntityManager();

    OriginalEl autor N K

  2. 2

    Puede utilizar la Persistencia.createEntityManagerFactory(Mapa) para pasar de propiedades para elegir la base de datos de URL y otras opciones de configuración.

    Suena bien. Déjame probar esta.

    OriginalEl autor James

  3. 0

    En el de Larga duración de la Sesión de la Arquitectura, usted debe crear un Plug-in-Marco.

    Por lo tanto, usted necesita para crear un Subproceso diferente-Grupo y de la Clase Repositorio.

    Esta podría ser su Clase-Cargador-Árbol

    • Sistema-Clase de carga (generalmente un URLClassLoader, contiene la Entitys)
      • JPA-Clase-Loader
        • De carga de su jpa.jar con persistence.xml en el interior, especificar la Base de datos de Configuración de la Aplicación de la-Clase-Cargador de
        • Instancias de su entityManager/session-factory.
        • De carga de cualquier plugin que necesita para trabajar con la Base de datos. Ejecución de la Unidad de Pruebas (;D), y el Plugin de Integración de Pruebas.

    OriginalEl autor Peter Rader

Dejar respuesta

Please enter your comment!
Please enter your name here