pgjdbc/pgjdbc GitHub issues and pull requests (mirror)  
help / color / mirror / Atom feed
From: monclaf (@monclaf) <[email protected]>
To: pgjdbc/pgjdbc <[email protected]>
Subject: [pgjdbc/pgjdbc] issue #3731: Entity Manager Creation issue with jdbc driver > 42.7.4
Date: Tue, 22 Jul 2025 12:49:39 +0000
Message-ID: <[email protected]> (raw)

Hello,

I use JPA and I get error : "ReportingSQLException : ERREUR: la relation « element » existe déjà" when I use jdbc driver version newer than v42.7.4. That happend when I try to create the entity manager. The database with their tables already exist so I don't understand why the driver try to create table that already exists.
Thanks for any help.
Fred

`EntityManagerFactory emf = Persistence.createEntityManagerFactory(Constants.DB_NAME_PREFIX + Constants.DB_NAME_SUFFIX, properties);
EntityManager em = emf.createEntityManager();`

Persistence.xml :

    <persistence-unit name="sinop_db" transaction-type="RESOURCE_LOCAL">
		<!-- provider -->
		<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
		<properties>
			<property name="javax.persistence.lock.timeout" value="10000" /> <!-- in milliseconds -->
			<property name="javax.persistence.query.timeout" value="10000" /> <!-- in milliseconds -->
			<property name="openjpa.ConnectionDriverName" value="org.postgresql.Driver" />
			<property name="openjpa.Multithreaded" value="true" />
			<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(foreignKeys=true)" />
			<property name="openjpa.jdbc.SchemaFactory" value="native(foreignKeys=true)" />
			<property name="openjpa.jdbc.MappingDefaults" value="ForeignKeyDeleteAction=restrict, JoinForeignKeyDeleteAction=restrict" />
			<property name="openjpa.Log" value="slf4j" />
		</properties>
	</persistence-unit>


Context : 
postgreSQL v17 - postgresql-42.7.5/6/7.jar - openjpa-all-4.1.1.jar or openjpa-all-4.0.1.jar

Stack trace :
`22-07-2025 13:05:42.109 [pool-6-thread-1] DEBUG [c.t.s.s.p.d.i.f.APersistencedb][openPhaseRemote] dbUrl = jdbc:postgresql://localhost:9917/db_COM
22-07-2025 13:05:42.110 [pool-6-thread-1] INFO  [c.t.s.s.p.d.i.f.APersistencedb][openPhaseRemote] {openjpa.ConnectionURL=jdbc:postgresql://localhost:9917/db_COM, openjpa.ConnectionUserName=postgres, openjpa.ConnectionPassword=postgres}

22-07-2025 13:05:52.082 [pool-6-thread-1] ERROR [c.t.s.s.p.d.i.f.APersistencedb][openPhaseRemote] ERREUR: la relation « element » existe déjà {stmnt 445531560 CREATE TABLE element ...))} [code=0, state=42P07]
org.apache.openjpa.persistence.PersistenceException: ERREUR: la relation « element » existe déjà {stmnt 445531560 CREATE TABLE element ...)} [code=0, state=42P07]
	at org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:625)
	at org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:488)
	at org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.synchronizeMappings(JDBCBrokerFactory.java:173)
	at org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.synchronizeMappings(JDBCBrokerFactory.java:178)
	at org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.newBrokerImpl(JDBCBrokerFactory.java:134)
	at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:213)
	at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:166)
	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.doCreateEM(EntityManagerFactoryImpl.java:282)
	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:201)
	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:188)
	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:178)
	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:64)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)

Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: ERREUR: la relation « element » existe déjà {stmnt 445531560 CREATE TABLE element ...))} [code=0, state=42P07]
	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:219)
	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:203)
	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingStatement.executeUpdate(LoggingConnectionDecorator.java:955)
	at org.apache.openjpa.lib.jdbc.DelegatingStatement.executeUpdate(DelegatingStatement.java:123)
	at org.apache.openjpa.jdbc.schema.SchemaTool.executeSQL(SchemaTool.java:1375)
	at org.apache.openjpa.jdbc.schema.SchemaTool.createTable(SchemaTool.java:1114)
	at org.apache.openjpa.jdbc.schema.SchemaTool.buildSchema(SchemaTool.java:660)
	at org.apache.openjpa.jdbc.schema.SchemaTool.add(SchemaTool.java:565)
	at org.apache.openjpa.jdbc.schema.SchemaTool.add(SchemaTool.java:400)
	at org.apache.openjpa.jdbc.schema.SchemaTool.run(SchemaTool.java:372)
	at org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:571)
	... 19 common frames omitted`


view thread (21+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: github://pgjdbc/pgjdbc
  Cc: [email protected], [email protected]
  Subject: Re: [pgjdbc/pgjdbc] issue #3731: Entity Manager Creation issue with jdbc driver > 42.7.4
  In-Reply-To: <<[email protected]>>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox