Hello,

I would like to know if there is an option in persistence.xml or in creating 
entity manager factory methods where I can specify to use "CASE_PRESERVE" in 
order to preserve the case of the name of the database in ConnectionURL 
property?

I recently posted an issue on PostgreSQL JDBC Driver v42.7.5/6/7 : 
https://github.com/pgjdbc/pgjdbc/issues/3731 because I get the following 
exception :

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)

when I try to create an EntityManager and it was working fine until version 
42.7.4 :


      String dbUrl = "jdbc:postgresql://" + "localhost:9999/\"DB_TEST\"";

      properties.put("openjpa.ConnectionURL", dbUrl);

      properties.put("openjpa.ConnectionUserName", "postgres");

      properties.put("openjpa.ConnectionPassword", "postgres");



      EntityManagerFactory emf = 
Persistence.createEntityManagerFactory("test_db", properties);

      EntityManager em = emf.createEntityManager();

PostgreSQL JDBC Driver support explained that they did the following change in 
v42.7.5 :

https://github.com/apache/openjpa/blob/87e253b9e58a8f061b0431a1ab4df3e5e1660519/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DBIdentifierUtilImpl.java#L407-L431
[cid:image002.jpg@01DC08DC.2BD41960]

and since, I can't use uppercase for the name of the database- :(
They proposes to find a way in openjpa to preserve case for database name.

Thanks for any help.
Fred

Reply via email to