¡He buscado respuestas para esto pero no he podido encontrar ninguna preguntando así a esta comunidad tan apta!Unidades de persistencia múltiple JPA para dev/qa/stage/production
- Tengo una aplicación java independiente que se implementa en muchos entornos: dev, qa, stage, producción. Como tal, cada entorno tiene su propio origen de datos/base de datos y hay archivos de propiedades que rigen diferentes propiedades según el entorno desde el que se ejecuta la aplicación. Como tal, en mi persistence.xml he definido una unidad de persistencia para dev. En el mismo archivo, me gustaría definir las unidades de persistencia para los otros entornos también. Al hacerlo, Eclipse (Indigo - latest) se queja de la siguiente manera: "Múltiples unidades de persistencia definidas - solo se reconocerá la primera unidad de persistencia". Estoy asumiendo que lo que he hecho es legal y esto es un problema de Eclipse ... ¿alguien puede confirmarlo? Además, ¿esto es lo que dictarían las mejores prácticas dada mi configuración actual?
- Supongo que cualquier entidad bean marcada con una anotación @Entity se recogió automáticamente sin tener que definirla explícitamente en el archivo persistence.xml como lo siguiente:
<class>com.mycompany.model.MyEntityBean</class>
. Si omito la inclusión explícita de la clase de entidad en el archivo, el bean de la entidad, aunque anotado, arroja un error: "Clase" com.mycompany.model.MyEntityBean "se asigna, pero no está incluido en ninguna unidad de persistencia" ¿Qué he asumido mal? - Mi última pregunta es con respecto a las credenciales de db: ¿es una buena práctica poner mis credenciales de db en el archivo persistence.xml en texto sin formato? ¿Hay alguna alternativa más segura a esto?
¡Gracias, comunidad!
p.s - Estoy usando EclipseLink como el proveedor de JPA no es que no importe?
Aquí es un ejemplo de mi persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="Development">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>com.mycompany.model.MyEntityBean</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.ibm.db2.jcc.DB2Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:db2://xxxxxxx" />
<property name="javax.persistence.jdbc.password" value="xxxxxx" />
<property name="javax.persistence.jdbc.user" value="xxxxxxxx" />
</properties>
</persistence-unit>
<persistence-unit name="QA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>com.mycompany.model.MyEntityBean</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.ibm.db2.jcc.DB2Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:db2://xxxxxxx" />
<property name="javax.persistence.jdbc.password" value="xxxxxx" />
<property name="javax.persistence.jdbc.user" value="xxxxxxxx" />
</properties>
</persistence-unit>
</persistence>
¿Puede agregar su contenido persistence.xml? Esto ayudaría a todos a comprender mejor. –
Hola Nayan, he agregado un recorte de mi persistence.xml gracias! – ustad