After upgrading JPA from 3.6.1 to 4.1.8 I start getting the following error:
"Error: registry contains more than one (2) entity manager factories: PERSISTENCE_UNIT_NAME"
Below you can find a brief summary of our specification requirements.
- User logins in the web application using their own oracle database account. - The web application only needs to access one database schema; - The access rights are managed using oracle roles and grant privilegies. - Only one database schema and multiple user oracle accounts. - We only set the username and password when users tries to login in the web application. - The EntityManagerFactory is created using the username and password of the user.
- Because our web application only access one database we only use one persistence unit name.
E.g. persistence.xml
<?xml version="1.0" encoding="UTF-8"?> <persistence version="1.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_1_0.xsd"> <persistence-unit name="PERSISTENCE_UNIT_NAME"> <provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties> <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"> <property name="hibernate.connection.url" value="jdbc:oracle:xx..."> <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"> <property name="hibernate.default_schema" value="SCHEMA_NAME">
<property name="hibernate.connection.username" value="USERNAME"> <property name="hibernate.connection.password" value="PASSWORD">
<property name="hibernate.connection.autocommit" value="false"> <property name="hbm2ddl.auto" value="validate">
<property name="hibernate.show_sql" value="true"> <property name="hibernate.format_sql" value="true"> </properties> </persistence-unit> </persistence>
E.g. how we create and close the entity manager factory
Map<String, String> configuration = new ProviderConfiguration(); configuration.put("hibernate.connection.username", username); configuration.put("hibernate.connection.password", password); EntityManagerFactory emf = Persistence.createEntityManagerFactory("PERSISTENCE_UNIT_NAME", configuration); EntityManager em = emf.createEntityManager(); SptrTaxNode t = em.find(SptrTaxNode.class, 9606); em.close(); emf.close();
Does anyone ever had a similar situation? Any ideas on how can I solve this problem?
Thanks in advance
|