From 907aadfbf4ade1a96dffabc6fa51ac48a4a0382c Mon Sep 17 00:00:00 2001 From: Alexander Schwartz Date: Tue, 13 Feb 2024 13:09:55 +0100 Subject: [PATCH] Use the appropriate database dialect to add quotes to the schema name Closes #25961 Signed-off-by: Alexander Schwartz --- .../java/org/keycloak/connections/jpa/util/JpaUtils.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/model/jpa/src/main/java/org/keycloak/connections/jpa/util/JpaUtils.java b/model/jpa/src/main/java/org/keycloak/connections/jpa/util/JpaUtils.java index 4db97b08fd0..48b81eb9ae6 100644 --- a/model/jpa/src/main/java/org/keycloak/connections/jpa/util/JpaUtils.java +++ b/model/jpa/src/main/java/org/keycloak/connections/jpa/util/JpaUtils.java @@ -18,6 +18,8 @@ package org.keycloak.connections.jpa.util; import jakarta.persistence.ValidationMode; +import org.hibernate.dialect.Dialect; +import org.hibernate.internal.SessionFactoryImpl; import org.jboss.logging.Logger; import org.hibernate.engine.spi.SessionFactoryImplementor; import org.hibernate.jpa.boot.internal.ParsedPersistenceXmlDescriptor; @@ -51,7 +53,8 @@ public class JpaUtils { public static String getTableNameForNativeQuery(String tableName, EntityManager em) { String schema = (String) em.getEntityManagerFactory().getProperties().get(HIBERNATE_DEFAULT_SCHEMA); - return (schema==null) ? tableName : "\"" + schema + "\"." + tableName; + final Dialect dialect = em.getEntityManagerFactory().unwrap(SessionFactoryImpl.class).getJdbcServices().getDialect(); + return (schema==null) ? tableName : dialect.openQuote() + schema + dialect.closeQuote() + "." + tableName; } public static EntityManagerFactory createEntityManagerFactory(KeycloakSession session, String unitName, Map properties, boolean jta) {