This is an automated email from the ASF dual-hosted git repository.

asf-gitbox-commits pushed a commit to branch past-M2
in repository https://gitbox.apache.org/repos/asf/cayenne.git


The following commit(s) were added to refs/heads/past-M2 by this push:
     new 6a686e24c  Rethinking QuotingStrategy to remove dependency on the ORM 
model...
6a686e24c is described below

commit 6a686e24ce4945c0eec236c6e14349c56534c5fa
Author: Andrus Adamchik <[email protected]>
AuthorDate: Wed Jun 17 11:44:30 2026 -0400

     Rethinking QuotingStrategy to remove dependency on the ORM model...
    
    moving quoting strategy picker to DbAdapter out of the call sites
---
 .../merge/factory/DerbyMergerTokenFactory.java      |  9 ++-------
 .../merge/factory/FirebirdMergerTokenFactory.java   | 13 +++----------
 .../merge/factory/HSQLMergerTokenFactory.java       |  5 +----
 .../merge/factory/IngresMergerTokenFactory.java     | 21 +++++----------------
 .../merge/factory/MySQLMergerTokenFactory.java      | 13 +++----------
 .../merge/factory/OracleMergerTokenFactory.java     |  9 ++-------
 .../merge/factory/SQLServerMergerTokenFactory.java  |  9 ++-------
 .../merge/factory/SybaseMergerTokenFactory.java     | 13 +++----------
 .../dbsync/merge/token/db/AddColumnToDb.java        |  5 +----
 .../dbsync/merge/token/db/DropColumnToDb.java       |  5 +----
 .../dbsync/merge/token/db/DropRelationshipToDb.java |  5 +----
 .../dbsync/merge/token/db/SetAllowNullToDb.java     |  5 +----
 .../dbsync/merge/token/db/SetColumnTypeToDb.java    |  5 +----
 .../dbsync/merge/token/db/SetGeneratedFlagToDb.java |  5 +----
 .../dbsync/merge/token/db/SetNotNullToDb.java       |  5 +----
 .../dbsync/merge/token/db/SetPrimaryKeyToDb.java    |  5 +----
 .../org/apache/cayenne/access/jdbc/EJBQLAction.java |  6 +-----
 .../access/sqlbuilder/DefaultSQLAppendable.java     | 12 +++---------
 .../java/org/apache/cayenne/dba/AutoAdapter.java    |  9 +++++++++
 .../main/java/org/apache/cayenne/dba/DbAdapter.java | 14 ++++++++++++++
 .../java/org/apache/cayenne/dba/JdbcAdapter.java    | 10 ----------
 .../cayenne/dba/oracle/OraclePkGenerator.java       |  6 +-----
 .../java/org/apache/cayenne/dba/AutoAdapterIT.java  |  6 ++++--
 .../org/apache/cayenne/unit/CayenneTestsEnv.java    |  6 +++---
 .../org/apache/cayenne/unit/dba/TestDbAdapter.java  |  8 ++------
 25 files changed, 66 insertions(+), 143 deletions(-)

diff --git 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/DerbyMergerTokenFactory.java
 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/DerbyMergerTokenFactory.java
index 0c1afe2cc..7ef273631 100644
--- 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/DerbyMergerTokenFactory.java
+++ 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/DerbyMergerTokenFactory.java
@@ -25,7 +25,6 @@ import 
org.apache.cayenne.dbsync.merge.token.db.SetAllowNullToDb;
 import org.apache.cayenne.dbsync.merge.token.db.SetColumnTypeToDb;
 import org.apache.cayenne.dbsync.merge.token.db.SetGeneratedFlagToDb;
 import org.apache.cayenne.dbsync.merge.token.db.SetNotNullToDb;
-import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 
@@ -62,9 +61,7 @@ public class DerbyMergerTokenFactory extends 
DefaultMergerTokenFactory {
 
             @Override
             public List<String> createSql(DbAdapter adapter) {
-                DataMap dataMap = getEntity().getDataMap();
-                QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                        ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+                QuotingStrategy quotes = 
adapter.getQuotingStrategy(getEntity());
                 StringBuilder sql = new StringBuilder("ALTER TABLE ");
                 quotes.appendFQN(sql, getEntity().getCatalog(), 
getEntity().getSchema(), getEntity().getName());
                 sql.append(" ALTER COLUMN ");
@@ -85,9 +82,7 @@ public class DerbyMergerTokenFactory extends 
DefaultMergerTokenFactory {
 
             @Override
             public List<String> createSql(DbAdapter adapter) {
-                DataMap dataMap = getEntity().getDataMap();
-                QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                        ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+                QuotingStrategy quotes = 
adapter.getQuotingStrategy(getEntity());
                 StringBuilder sql = new StringBuilder("ALTER TABLE ");
                 quotes.appendFQN(sql, getEntity().getCatalog(), 
getEntity().getSchema(), getEntity().getName());
                 sql.append(" ALTER COLUMN ");
diff --git 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/FirebirdMergerTokenFactory.java
 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/FirebirdMergerTokenFactory.java
index 7792b1a78..34a4adf58 100644
--- 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/FirebirdMergerTokenFactory.java
+++ 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/FirebirdMergerTokenFactory.java
@@ -26,7 +26,6 @@ import org.apache.cayenne.dbsync.merge.token.db.AddColumnToDb;
 import org.apache.cayenne.dbsync.merge.token.db.DropColumnToDb;
 import org.apache.cayenne.dbsync.merge.token.db.SetAllowNullToDb;
 import org.apache.cayenne.dbsync.merge.token.db.SetNotNullToDb;
-import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 
@@ -39,9 +38,7 @@ public class FirebirdMergerTokenFactory extends 
DefaultMergerTokenFactory {
     public MergerToken createDropColumnToDb(DbEntity entity, DbAttribute 
column) {
         return new DropColumnToDb(entity, column) {
             public List<String> createSql(DbAdapter adapter) {
-                DataMap dataMap = getEntity().getDataMap();
-                QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                        ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+                QuotingStrategy quotes = 
adapter.getQuotingStrategy(getEntity());
                 StringBuilder sql = new StringBuilder("ALTER TABLE ");
                 quotes.appendFQN(sql, getEntity().getCatalog(), 
getEntity().getSchema(), getEntity().getName());
                 sql.append(" DROP ");
@@ -57,9 +54,7 @@ public class FirebirdMergerTokenFactory extends 
DefaultMergerTokenFactory {
     public MergerToken createSetNotNullToDb(DbEntity entity, DbAttribute 
column) {
         return new SetNotNullToDb(entity, column) {
             public List<String> createSql(DbAdapter adapter) {
-                DataMap dataMap = getEntity().getDataMap();
-                QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                        ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+                QuotingStrategy quotes = 
adapter.getQuotingStrategy(getEntity());
                 String entityName = quotes.quotedFQN(getEntity().getCatalog(), 
getEntity().getSchema(),
                         getEntity().getName());
                 String columnName = quotes.quoted(getColumn().getName());
@@ -75,9 +70,7 @@ public class FirebirdMergerTokenFactory extends 
DefaultMergerTokenFactory {
     public MergerToken createSetAllowNullToDb(DbEntity entity, DbAttribute 
column) {
         return new SetAllowNullToDb(entity, column) {
             public List<String> createSql(DbAdapter adapter) {
-                DataMap dataMap = getEntity().getDataMap();
-                QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                        ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+                QuotingStrategy quotes = 
adapter.getQuotingStrategy(getEntity());
                 String entityName = quotes.quotedFQN(getEntity().getCatalog(), 
getEntity().getSchema(),
                         getEntity().getName());
                 String columnName = quotes.quoted(getColumn().getName());
diff --git 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/HSQLMergerTokenFactory.java
 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/HSQLMergerTokenFactory.java
index f7ba35035..7dc64181d 100644
--- 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/HSQLMergerTokenFactory.java
+++ 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/HSQLMergerTokenFactory.java
@@ -25,7 +25,6 @@ import 
org.apache.cayenne.dbsync.merge.token.db.SetAllowNullToDb;
 import org.apache.cayenne.dbsync.merge.token.db.SetColumnTypeToDb;
 import org.apache.cayenne.dbsync.merge.token.db.SetGeneratedFlagToDb;
 import org.apache.cayenne.dbsync.merge.token.db.SetPrimaryKeyToDb;
-import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 
@@ -60,9 +59,7 @@ public class HSQLMergerTokenFactory extends 
DefaultMergerTokenFactory {
 
             @Override
             public List<String> createSql(DbAdapter adapter) {
-                DataMap dataMap = getEntity().getDataMap();
-                QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                        ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+                QuotingStrategy quotes = 
adapter.getQuotingStrategy(getEntity());
                 StringBuilder sql = new StringBuilder("ALTER TABLE ");
                 quotes.appendFQN(sql, getEntity().getCatalog(), 
getEntity().getSchema(), getEntity().getName());
                 sql.append(" ALTER COLUMN ");
diff --git 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/IngresMergerTokenFactory.java
 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/IngresMergerTokenFactory.java
index 44b06ac10..0f2e1800c 100644
--- 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/IngresMergerTokenFactory.java
+++ 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/IngresMergerTokenFactory.java
@@ -28,7 +28,6 @@ import 
org.apache.cayenne.dbsync.merge.token.db.SetAllowNullToDb;
 import org.apache.cayenne.dbsync.merge.token.db.SetColumnTypeToDb;
 import org.apache.cayenne.dbsync.merge.token.db.SetGeneratedFlagToDb;
 import org.apache.cayenne.dbsync.merge.token.db.SetNotNullToDb;
-import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.map.DbJoin;
@@ -65,9 +64,7 @@ public class IngresMergerTokenFactory extends 
DefaultMergerTokenFactory {
             @Override
             public List<String> createSql(DbAdapter adapter) {
                 StringBuilder buf = new StringBuilder();
-                DataMap dataMap = getEntity().getDataMap();
-                QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                        ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+                QuotingStrategy quotes = 
adapter.getQuotingStrategy(getEntity());
                 buf.append("ALTER TABLE ");
                 quotes.appendFQN(buf, getEntity().getCatalog(), 
getEntity().getSchema(), getEntity().getName());
                 buf.append(" DROP COLUMN ");
@@ -90,9 +87,7 @@ public class IngresMergerTokenFactory extends 
DefaultMergerTokenFactory {
                 if (!rel.isToMany() && rel.isToPK() && !rel.isToDependentPK()) 
{
 
                     DbEntity source = (DbEntity) rel.getSourceEntity();
-                    DataMap dataMap = source.getDataMap();
-                    QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                            ? adapter.getQuotingStrategy() : 
QuotingStrategy.NONE;
+                    QuotingStrategy quotes = 
adapter.getQuotingStrategy(source);
                     StringBuilder buf = new StringBuilder();
                     StringBuilder refBuf = new StringBuilder();
 
@@ -159,9 +154,7 @@ public class IngresMergerTokenFactory extends 
DefaultMergerTokenFactory {
 
                 StringBuilder sqlBuffer = new StringBuilder();
 
-                DataMap dataMap = getEntity().getDataMap();
-                QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                        ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+                QuotingStrategy quotes = 
adapter.getQuotingStrategy(getEntity());
 
                 sqlBuffer.append("ALTER TABLE ");
                 sqlBuffer.append(getEntity().getFullyQualifiedName());
@@ -193,9 +186,7 @@ public class IngresMergerTokenFactory extends 
DefaultMergerTokenFactory {
             @Override
             public List<String> createSql(DbAdapter adapter) {
                 StringBuilder sqlBuffer = new StringBuilder();
-                DataMap dataMap = getEntity().getDataMap();
-                QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                        ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+                QuotingStrategy quotes = 
adapter.getQuotingStrategy(getEntity());
                 sqlBuffer.append("ALTER TABLE ");
                 quotes.appendFQN(sqlBuffer, getEntity().getCatalog(), 
getEntity().getSchema(), getEntity().getName());
                 sqlBuffer.append(" ALTER COLUMN ");
@@ -232,9 +223,7 @@ public class IngresMergerTokenFactory extends 
DefaultMergerTokenFactory {
                     return Collections.emptyList();
                 }
                 
-                DataMap dataMap = getEntity().getDataMap();
-                QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                        ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+                QuotingStrategy quotes = 
adapter.getQuotingStrategy(getEntity());
                 StringBuilder buf = new StringBuilder();
                 buf.append("ALTER TABLE ");
                 quotes.appendFQN(buf, getEntity().getCatalog(), 
getEntity().getSchema(), getEntity().getName());
diff --git 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/MySQLMergerTokenFactory.java
 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/MySQLMergerTokenFactory.java
index f5c5936ee..daa6cb188 100644
--- 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/MySQLMergerTokenFactory.java
+++ 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/MySQLMergerTokenFactory.java
@@ -27,7 +27,6 @@ import 
org.apache.cayenne.dbsync.merge.token.db.SetColumnTypeToDb;
 import org.apache.cayenne.dbsync.merge.token.db.SetGeneratedFlagToDb;
 import org.apache.cayenne.dbsync.merge.token.db.SetNotNullToDb;
 import org.apache.cayenne.dbsync.merge.token.db.SetPrimaryKeyToDb;
-import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.map.DbRelationship;
@@ -49,9 +48,7 @@ public class MySQLMergerTokenFactory extends 
DefaultMergerTokenFactory {
             public List<String> createSql(DbAdapter adapter) {
                 StringBuffer sqlBuffer = new StringBuffer();
 
-                DataMap dataMap = getEntity().getDataMap();
-                QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                        ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+                QuotingStrategy quotes = 
adapter.getQuotingStrategy(getEntity());
 
                 sqlBuffer.append("ALTER TABLE ");
                 quotes.appendFQN(sqlBuffer, getEntity().getCatalog(), 
getEntity().getSchema(), getEntity().getName());
@@ -78,9 +75,7 @@ public class MySQLMergerTokenFactory extends 
DefaultMergerTokenFactory {
             public List<String> createSql(DbAdapter adapter) {
                 StringBuffer sqlBuffer = new StringBuffer();
 
-                DataMap dataMap = getEntity().getDataMap();
-                QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                        ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+                QuotingStrategy quotes = 
adapter.getQuotingStrategy(getEntity());
 
                 sqlBuffer.append("ALTER TABLE ");
                 quotes.appendFQN(sqlBuffer, getEntity().getCatalog(), 
getEntity().getSchema(), getEntity().getName());
@@ -134,9 +129,7 @@ public class MySQLMergerTokenFactory extends 
DefaultMergerTokenFactory {
                 if (fkName == null) {
                     return Collections.emptyList();
                 }
-                DataMap dataMap = entity.getDataMap();
-                QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                        ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+                QuotingStrategy quotes = adapter.getQuotingStrategy(entity);
 
                 // 
http://dev.mysql.com/tech-resources/articles/mysql-cluster-50.html
                 StringBuilder sql = new StringBuilder("ALTER TABLE ");
diff --git 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/OracleMergerTokenFactory.java
 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/OracleMergerTokenFactory.java
index 9da84ac9f..9ea97ceaf 100644
--- 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/OracleMergerTokenFactory.java
+++ 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/OracleMergerTokenFactory.java
@@ -25,7 +25,6 @@ import org.apache.cayenne.dbsync.merge.token.db.AddColumnToDb;
 import org.apache.cayenne.dbsync.merge.token.db.SetAllowNullToDb;
 import org.apache.cayenne.dbsync.merge.token.db.SetColumnTypeToDb;
 import org.apache.cayenne.dbsync.merge.token.db.SetNotNullToDb;
-import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 
@@ -81,9 +80,7 @@ public class OracleMergerTokenFactory extends 
DefaultMergerTokenFactory {
             public List<String> createSql(DbAdapter adapter) {
                 StringBuffer sqlBuffer = new StringBuffer();
 
-                DataMap dataMap = getEntity().getDataMap();
-                QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                        ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+                QuotingStrategy quotes = 
adapter.getQuotingStrategy(getEntity());
                 sqlBuffer.append("ALTER TABLE ");
                 quotes.appendFQN(sqlBuffer, getEntity().getCatalog(), 
getEntity().getSchema(), getEntity().getName());
                 sqlBuffer.append(" MODIFY ");
@@ -105,9 +102,7 @@ public class OracleMergerTokenFactory extends 
DefaultMergerTokenFactory {
             public List<String> createSql(DbAdapter adapter) {
                 StringBuffer sqlBuffer = new StringBuffer();
 
-                DataMap dataMap = getEntity().getDataMap();
-                QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                        ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+                QuotingStrategy quotes = 
adapter.getQuotingStrategy(getEntity());
                 sqlBuffer.append("ALTER TABLE ");
                 quotes.appendFQN(sqlBuffer, getEntity().getCatalog(), 
getEntity().getSchema(), getEntity().getName());
                 sqlBuffer.append(" MODIFY ");
diff --git 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/SQLServerMergerTokenFactory.java
 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/SQLServerMergerTokenFactory.java
index a0cf06b71..9b24320a4 100644
--- 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/SQLServerMergerTokenFactory.java
+++ 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/SQLServerMergerTokenFactory.java
@@ -26,7 +26,6 @@ import 
org.apache.cayenne.dbsync.merge.token.db.SetAllowNullToDb;
 import org.apache.cayenne.dbsync.merge.token.db.SetColumnTypeToDb;
 import org.apache.cayenne.dbsync.merge.token.db.SetGeneratedFlagToDb;
 import org.apache.cayenne.dbsync.merge.token.db.SetNotNullToDb;
-import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 
@@ -83,9 +82,7 @@ public class SQLServerMergerTokenFactory extends 
DefaultMergerTokenFactory {
             public List<String> createSql(DbAdapter adapter) {
                 StringBuffer sqlBuffer = new StringBuffer();
 
-                DataMap dataMap = getEntity().getDataMap();
-                QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                        ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+                QuotingStrategy quotes = 
adapter.getQuotingStrategy(getEntity());
                 sqlBuffer.append("ALTER TABLE ");
                 quotes.appendFQN(sqlBuffer, getEntity().getCatalog(), 
getEntity().getSchema(), getEntity().getName());
                 sqlBuffer.append(" ALTER COLUMN ");
@@ -107,9 +104,7 @@ public class SQLServerMergerTokenFactory extends 
DefaultMergerTokenFactory {
             public List<String> createSql(DbAdapter adapter) {
                 StringBuffer sqlBuffer = new StringBuffer();
 
-                DataMap dataMap = getEntity().getDataMap();
-                QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                        ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+                QuotingStrategy quotes = 
adapter.getQuotingStrategy(getEntity());
                 sqlBuffer.append("ALTER TABLE ");
                 quotes.appendFQN(sqlBuffer, getEntity().getCatalog(), 
getEntity().getSchema(), getEntity().getName());
                 sqlBuffer.append(" ALTER COLUMN ");
diff --git 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/SybaseMergerTokenFactory.java
 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/SybaseMergerTokenFactory.java
index e3994b654..a4941357c 100644
--- 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/SybaseMergerTokenFactory.java
+++ 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/SybaseMergerTokenFactory.java
@@ -26,7 +26,6 @@ import 
org.apache.cayenne.dbsync.merge.token.db.DropColumnToDb;
 import org.apache.cayenne.dbsync.merge.token.db.SetAllowNullToDb;
 import org.apache.cayenne.dbsync.merge.token.db.SetColumnTypeToDb;
 import org.apache.cayenne.dbsync.merge.token.db.SetNotNullToDb;
-import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 
@@ -49,9 +48,7 @@ public class SybaseMergerTokenFactory extends 
DefaultMergerTokenFactory {
             public List<String> createSql(DbAdapter adapter) {
 
                 StringBuffer sqlBuffer = new StringBuffer();
-                DataMap dataMap = getEntity().getDataMap();
-                QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                        ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+                QuotingStrategy quotes = 
adapter.getQuotingStrategy(getEntity());
                 sqlBuffer.append("ALTER TABLE ");
                 quotes.appendFQN(sqlBuffer, getEntity().getCatalog(), 
getEntity().getSchema(), getEntity().getName());
                 sqlBuffer.append(" ADD ");
@@ -77,9 +74,7 @@ public class SybaseMergerTokenFactory extends 
DefaultMergerTokenFactory {
             @Override
             public List<String> createSql(DbAdapter adapter) {
                 StringBuilder sqlBuffer = new StringBuilder();
-                DataMap dataMap = getEntity().getDataMap();
-                QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                        ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+                QuotingStrategy quotes = 
adapter.getQuotingStrategy(getEntity());
                 sqlBuffer.append("ALTER TABLE ");
                 quotes.appendFQN(sqlBuffer, getEntity().getCatalog(), 
getEntity().getSchema(), getEntity().getName());
                 sqlBuffer.append(" DROP ");
@@ -163,9 +158,7 @@ public class SybaseMergerTokenFactory extends 
DefaultMergerTokenFactory {
             DbEntity entity,
             DbAttribute column) {
         StringBuffer sqlBuffer = new StringBuffer();
-        DataMap dataMap = entity.getDataMap();
-        QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+        QuotingStrategy quotes = adapter.getQuotingStrategy(entity);
         sqlBuffer.append("ALTER TABLE ");
         quotes.appendFQN(sqlBuffer, entity.getCatalog(), entity.getSchema(), 
entity.getName());
         sqlBuffer.append(" MODIFY ");
diff --git 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/AddColumnToDb.java
 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/AddColumnToDb.java
index 344bbe16c..516d0f381 100644
--- 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/AddColumnToDb.java
+++ 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/AddColumnToDb.java
@@ -24,7 +24,6 @@ import org.apache.cayenne.dba.QuotingStrategy;
 import org.apache.cayenne.dba.JdbcAdapter;
 import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
 import org.apache.cayenne.dbsync.merge.token.MergerToken;
-import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 
@@ -54,9 +53,7 @@ public class AddColumnToDb extends 
AbstractToDbToken.EntityAndColumn {
     @Override
     public List<String> createSql(DbAdapter adapter) {
         StringBuffer sqlBuffer = new StringBuffer();
-        DataMap dataMap = getEntity().getDataMap();
-        QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+        QuotingStrategy quotes = adapter.getQuotingStrategy(getEntity());
         appendPrefix(sqlBuffer, quotes);
 
         
sqlBuffer.append(adapter.preferredNativeColumnType(getColumn()).nativeType());
diff --git 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/DropColumnToDb.java
 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/DropColumnToDb.java
index b0380e1f4..d10b007c1 100644
--- 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/DropColumnToDb.java
+++ 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/DropColumnToDb.java
@@ -26,7 +26,6 @@ import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.dba.QuotingStrategy;
 import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
 import org.apache.cayenne.dbsync.merge.token.MergerToken;
-import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 
@@ -39,9 +38,7 @@ public class DropColumnToDb extends 
AbstractToDbToken.EntityAndColumn {
     @Override
     public List<String> createSql(DbAdapter adapter) {
         StringBuilder sqlBuffer = new StringBuilder();
-        DataMap dataMap = getEntity().getDataMap();
-        QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+        QuotingStrategy quotes = adapter.getQuotingStrategy(getEntity());
         sqlBuffer.append("ALTER TABLE ");
         quotes.appendFQN(sqlBuffer, getEntity().getCatalog(), 
getEntity().getSchema(), getEntity().getName());
         sqlBuffer.append(" DROP COLUMN ");
diff --git 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/DropRelationshipToDb.java
 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/DropRelationshipToDb.java
index 04b09b7b5..2aea684ae 100644
--- 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/DropRelationshipToDb.java
+++ 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/DropRelationshipToDb.java
@@ -23,7 +23,6 @@ import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.dba.QuotingStrategy;
 import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
 import org.apache.cayenne.dbsync.merge.token.MergerToken;
-import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.map.DbRelationship;
 import org.apache.cayenne.dbsync.reverse.dbload.DbRelationshipDetected;
@@ -53,9 +52,7 @@ public class DropRelationshipToDb extends 
AbstractToDbToken.Entity {
             return Collections.emptyList();
         }
 
-        DataMap dataMap = getEntity().getDataMap();
-        QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+        QuotingStrategy quotes = adapter.getQuotingStrategy(getEntity());
         StringBuilder sql = new StringBuilder("ALTER TABLE ");
         quotes.appendFQN(sql, getEntity().getCatalog(), 
getEntity().getSchema(), getEntity().getName());
         sql.append(" DROP CONSTRAINT ").append(getFkName());
diff --git 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/SetAllowNullToDb.java
 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/SetAllowNullToDb.java
index 112d64e1d..04006b1b6 100644
--- 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/SetAllowNullToDb.java
+++ 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/SetAllowNullToDb.java
@@ -23,7 +23,6 @@ import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.dba.QuotingStrategy;
 import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
 import org.apache.cayenne.dbsync.merge.token.MergerToken;
-import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 
@@ -43,9 +42,7 @@ public class SetAllowNullToDb extends 
AbstractToDbToken.EntityAndColumn {
     @Override
     public List<String> createSql(DbAdapter adapter) {
         StringBuilder sqlBuffer = new StringBuilder();
-        DataMap dataMap = getEntity().getDataMap();
-        QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+        QuotingStrategy quotes = adapter.getQuotingStrategy(getEntity());
         sqlBuffer.append("ALTER TABLE ");
         quotes.appendFQN(sqlBuffer, getEntity().getCatalog(), 
getEntity().getSchema(), getEntity().getName());
         sqlBuffer.append(" ALTER COLUMN ");
diff --git 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/SetColumnTypeToDb.java
 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/SetColumnTypeToDb.java
index 22a75ac5b..95deadc20 100644
--- 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/SetColumnTypeToDb.java
+++ 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/SetColumnTypeToDb.java
@@ -25,7 +25,6 @@ import org.apache.cayenne.dba.JdbcAdapter;
 import org.apache.cayenne.dba.TypesMapping;
 import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
 import org.apache.cayenne.dbsync.merge.token.MergerToken;
-import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 
@@ -63,9 +62,7 @@ public class SetColumnTypeToDb extends 
AbstractToDbToken.Entity {
     @Override
     public List<String> createSql(DbAdapter adapter) {
         StringBuffer sqlBuffer = new StringBuffer();
-        DataMap dataMap = getEntity().getDataMap();
-        QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+        QuotingStrategy quotes = adapter.getQuotingStrategy(getEntity());
         appendPrefix(sqlBuffer, quotes);
   
         
sqlBuffer.append(adapter.preferredNativeColumnType(columnNew).nativeType());
diff --git 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/SetGeneratedFlagToDb.java
 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/SetGeneratedFlagToDb.java
index 473203f91..66d289e43 100644
--- 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/SetGeneratedFlagToDb.java
+++ 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/SetGeneratedFlagToDb.java
@@ -26,7 +26,6 @@ import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.dba.QuotingStrategy;
 import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
 import org.apache.cayenne.dbsync.merge.token.MergerToken;
-import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 
@@ -71,9 +70,7 @@ public class SetGeneratedFlagToDb extends 
AbstractToDbToken.EntityAndColumn {
     }
 
     private QuotingStrategy resolveQuotes(DbAdapter adapter) {
-        DataMap dataMap = getEntity().getDataMap();
-        return dataMap != null && dataMap.isQuotingSQLIdentifiers()
-                ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+        return adapter.getQuotingStrategy(getEntity());
     }
 
     @SuppressWarnings("unchecked")
diff --git 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/SetNotNullToDb.java
 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/SetNotNullToDb.java
index ce84fdff5..78afa5fb3 100644
--- 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/SetNotNullToDb.java
+++ 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/SetNotNullToDb.java
@@ -23,7 +23,6 @@ import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.dba.QuotingStrategy;
 import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
 import org.apache.cayenne.dbsync.merge.token.MergerToken;
-import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 
@@ -41,9 +40,7 @@ public class SetNotNullToDb extends 
AbstractToDbToken.EntityAndColumn {
 
     @Override
     public List<String> createSql(DbAdapter adapter) {
-        DataMap dataMap = getEntity().getDataMap();
-        QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+        QuotingStrategy quotes = adapter.getQuotingStrategy(getEntity());
         StringBuilder sql = new StringBuilder("ALTER TABLE ");
         quotes.appendFQN(sql, getEntity().getCatalog(), 
getEntity().getSchema(), getEntity().getName());
         sql.append(" ALTER COLUMN ");
diff --git 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/SetPrimaryKeyToDb.java
 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/SetPrimaryKeyToDb.java
index 9f6456515..b4dbab3ad 100644
--- 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/SetPrimaryKeyToDb.java
+++ 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/db/SetPrimaryKeyToDb.java
@@ -23,7 +23,6 @@ import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.dba.QuotingStrategy;
 import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
 import org.apache.cayenne.dbsync.merge.token.MergerToken;
-import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 
@@ -58,9 +57,7 @@ public class SetPrimaryKeyToDb extends 
AbstractToDbToken.Entity {
     }
 
     protected QuotingStrategy resolveQuotes(DbAdapter adapter) {
-        DataMap dataMap = getEntity().getDataMap();
-        return dataMap != null && dataMap.isQuotingSQLIdentifiers()
-                ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+        return adapter.getQuotingStrategy(getEntity());
     }
 
     protected void appendDropOriginalPrimaryKeySQL(DbAdapter adapter, 
List<String> sqls) {
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/EJBQLAction.java 
b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/EJBQLAction.java
index 049637e8e..79434f9ed 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/EJBQLAction.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/EJBQLAction.java
@@ -25,7 +25,6 @@ import 
org.apache.cayenne.access.translator.ejbql.EJBQLTranslator;
 import org.apache.cayenne.dba.QuotingStrategy;
 import org.apache.cayenne.ejbql.EJBQLBaseVisitor;
 import org.apache.cayenne.ejbql.EJBQLCompiledExpression;
-import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.ejbql.EJBQLExpression;
 import org.apache.cayenne.ejbql.EJBQLExpressionVisitor;
@@ -59,10 +58,7 @@ public class EJBQLAction extends BaseSQLAction {
         EJBQLTranslator translator = dataNode.getEjbqlTranslator();
 
         DbEntity rootDbEntity = 
compiledExpression.getRootDescriptor().getEntity().getDbEntity();
-        DataMap dataMap = rootDbEntity != null ? rootDbEntity.getDataMap() : 
null;
-        QuotingStrategy quotingStrategy = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                ? dataNode.getAdapter().getQuotingStrategy()
-                : QuotingStrategy.NONE;
+        QuotingStrategy quotingStrategy = 
dataNode.getAdapter().getQuotingStrategy(rootDbEntity);
 
         EJBQLTranslationContext context = new EJBQLTranslationContext(
                 dataNode.getEntityResolver(),
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/access/sqlbuilder/DefaultSQLAppendable.java
 
b/cayenne/src/main/java/org/apache/cayenne/access/sqlbuilder/DefaultSQLAppendable.java
index 6059d3711..c6f86a8e5 100644
--- 
a/cayenne/src/main/java/org/apache/cayenne/access/sqlbuilder/DefaultSQLAppendable.java
+++ 
b/cayenne/src/main/java/org/apache/cayenne/access/sqlbuilder/DefaultSQLAppendable.java
@@ -20,7 +20,6 @@
 package org.apache.cayenne.access.sqlbuilder;
 
 import org.apache.cayenne.dba.QuotingStrategy;
-import org.apache.cayenne.map.DbEntity;
 
 /**
  * @since 4.2
@@ -38,14 +37,9 @@ public class DefaultSQLAppendable implements SQLAppendable {
     }
 
     private static QuotingStrategy resolveQuotes(SQLGenerationContext context) 
{
-        if (context == null) {
-            return QuotingStrategy.NONE;
-        }
-        DbEntity rootDbEntity = context.getRootDbEntity();
-        boolean quoting = rootDbEntity != null
-                && rootDbEntity.getDataMap() != null
-                && rootDbEntity.getDataMap().isQuotingSQLIdentifiers();
-        return quoting ? context.getAdapter().getQuotingStrategy() : 
QuotingStrategy.NONE;
+        return context == null
+                ? QuotingStrategy.NONE
+                : 
context.getAdapter().getQuotingStrategy(context.getRootDbEntity());
     }
 
     @Override
diff --git a/cayenne/src/main/java/org/apache/cayenne/dba/AutoAdapter.java 
b/cayenne/src/main/java/org/apache/cayenne/dba/AutoAdapter.java
index 6ec2c1247..632b494fd 100644
--- a/cayenne/src/main/java/org/apache/cayenne/dba/AutoAdapter.java
+++ b/cayenne/src/main/java/org/apache/cayenne/dba/AutoAdapter.java
@@ -266,11 +266,20 @@ public class AutoAdapter implements DbAdapter {
                getAdapter().createTableAppendColumn(sqlBuffer, column);
        }
 
+       @Deprecated
        @Override
        public QuotingStrategy getQuotingStrategy() {
                return getAdapter().getQuotingStrategy();
        }
 
+       /**
+        * @since 5.0
+        */
+       @Override
+       public QuotingStrategy getQuotingStrategy(DbEntity entity) {
+               return getAdapter().getQuotingStrategy(entity);
+       }
+
        /**
         * @since 4.0
         */
diff --git a/cayenne/src/main/java/org/apache/cayenne/dba/DbAdapter.java 
b/cayenne/src/main/java/org/apache/cayenne/dba/DbAdapter.java
index 374677edf..e37d792e9 100644
--- a/cayenne/src/main/java/org/apache/cayenne/dba/DbAdapter.java
+++ b/cayenne/src/main/java/org/apache/cayenne/dba/DbAdapter.java
@@ -26,6 +26,7 @@ import 
org.apache.cayenne.access.translator.ejbql.EJBQLTranslator;
 import org.apache.cayenne.access.translator.procedure.ProcedureTranslator;
 import org.apache.cayenne.access.translator.select.SelectTranslator;
 import org.apache.cayenne.access.types.ExtendedTypeMap;
+import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.map.DbRelationship;
@@ -292,9 +293,22 @@ public interface DbAdapter {
      * and {@link QuotingStrategy#NONE} otherwise.
      *
      * @since 4.0
+     * @deprecated in favor of {@link #getQuotingStrategy(DbEntity)}
      */
+    @Deprecated(since = "5.0", forRemoval = true)
     QuotingStrategy getQuotingStrategy();
 
+    /**
+     * Resolves the {@link QuotingStrategy} to use for the given entity: this 
adapter's strategy when the
+     * entity's DataMap enables SQL identifier quoting, and {@link 
QuotingStrategy#NONE} otherwise.
+     *
+     * @since 5.0
+     */
+    default QuotingStrategy getQuotingStrategy(DbEntity entity) {
+        DataMap dataMap = entity != null ? entity.getDataMap() : null;
+        return dataMap != null && dataMap.isQuotingSQLIdentifiers() ? 
getQuotingStrategy() : QuotingStrategy.NONE;
+    }
+
     /**
      * Allows the users to get access to the adapter decorated by a given
      * adapter.
diff --git a/cayenne/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java 
b/cayenne/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java
index e5a5292b0..fc08c3eac 100644
--- a/cayenne/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java
+++ b/cayenne/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java
@@ -38,7 +38,6 @@ import org.apache.cayenne.configuration.Constants;
 import org.apache.cayenne.configuration.RuntimeProperties;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.log.JdbcEventLogger;
-import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.map.DbJoin;
@@ -313,15 +312,6 @@ public class JdbcAdapter implements DbAdapter {
         return Collections.singleton(buf.toString());
     }
 
-    /**
-     * Resolves the {@link QuotingStrategy} instance to use for the given 
entity, based on whether
-     * its DataMap enables SQL identifier quoting.
-     */
-    protected QuotingStrategy getQuotingStrategy(DbEntity entity) {
-        DataMap dataMap = entity.getDataMap();
-        return dataMap != null && dataMap.isQuotingSQLIdentifiers() ? 
getQuotingStrategy() : QuotingStrategy.NONE;
-    }
-
     /**
      * Returns a SQL string that can be used to create database table
      * corresponding to <code>ent</code> parameter.
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/dba/oracle/OraclePkGenerator.java 
b/cayenne/src/main/java/org/apache/cayenne/dba/oracle/OraclePkGenerator.java
index 50cfa2b41..11454c480 100644
--- a/cayenne/src/main/java/org/apache/cayenne/dba/oracle/OraclePkGenerator.java
+++ b/cayenne/src/main/java/org/apache/cayenne/dba/oracle/OraclePkGenerator.java
@@ -24,7 +24,6 @@ import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.dba.QuotingStrategy;
 import org.apache.cayenne.dba.JdbcAdapter;
 import org.apache.cayenne.dba.JdbcPkGenerator;
-import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.map.DbKeyGenerator;
 
@@ -205,10 +204,7 @@ public class OraclePkGenerator extends JdbcPkGenerator {
      * Returns expected primary key sequence name for a DbEntity.
      */
     protected String sequenceName(DbEntity entity) {
-        DataMap dataMap = entity.getDataMap();
-        QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
-        return sequenceName(entity, quotes);
+        return sequenceName(entity, adapter.getQuotingStrategy(entity));
     }
 
     /**
diff --git a/cayenne/src/test/java/org/apache/cayenne/dba/AutoAdapterIT.java 
b/cayenne/src/test/java/org/apache/cayenne/dba/AutoAdapterIT.java
index dd459dd9a..d36535175 100644
--- a/cayenne/src/test/java/org/apache/cayenne/dba/AutoAdapterIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/dba/AutoAdapterIT.java
@@ -21,6 +21,7 @@ package org.apache.cayenne.dba;
 
 import org.apache.cayenne.access.jdbc.SQLTemplateAction;
 import org.apache.cayenne.log.NoopJdbcEventLogger;
+import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.query.ObjectSelect;
 import org.apache.cayenne.query.SQLTemplate;
 import org.apache.cayenne.testdo.testmap.Artist;
@@ -76,8 +77,9 @@ public class AutoAdapterIT {
                 autoAdapter.getBatchTerminator());
         assertSame(adapter.getPkGenerator(),
                 autoAdapter.getPkGenerator());
-        assertSame(adapter.getQuotingStrategy(),
-                autoAdapter.getQuotingStrategy());
+        DbEntity artistDbEntity = 
env.dataNode().getEntityResolver().getObjEntity(Artist.class).getDbEntity();
+        assertSame(adapter.getQuotingStrategy(artistDbEntity),
+                autoAdapter.getQuotingStrategy(artistDbEntity));
         // returns a new instance for each call
         assertSame(adapter.getSqlTreeProcessor().getClass(),
                 autoAdapter.getSqlTreeProcessor().getClass());
diff --git a/cayenne/src/test/java/org/apache/cayenne/unit/CayenneTestsEnv.java 
b/cayenne/src/test/java/org/apache/cayenne/unit/CayenneTestsEnv.java
index 586388e87..769cc58b0 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/CayenneTestsEnv.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/CayenneTestsEnv.java
@@ -31,6 +31,7 @@ import org.apache.cayenne.dba.QuotingStrategy;
 import org.apache.cayenne.di.AdhocObjectFactory;
 import org.apache.cayenne.di.Module;
 import org.apache.cayenne.map.DataMap;
+import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.map.EntityResolver;
 import org.apache.cayenne.map.Procedure;
 import org.apache.cayenne.runtime.CayenneRuntime;
@@ -117,9 +118,8 @@ public class CayenneTestsEnv implements BeforeEachCallback, 
AfterEachCallback {
         TestDbAdapter testDbAdapter = TestDbAdapter.of(firstAdapter);
         tweakProcedures(runtime, testDbAdapter);
 
-        DataMap firstDataMap = 
context.getEntityResolver().getDataMaps().iterator().next();
-        QuotingStrategy quotingStrategy = 
firstDataMap.isQuotingSQLIdentifiers()
-                ? firstAdapter.getQuotingStrategy() : QuotingStrategy.NONE;
+        DbEntity firstDbEntity = 
context.getEntityResolver().getDbEntities().iterator().next();
+        QuotingStrategy quotingStrategy = 
firstAdapter.getQuotingStrategy(firstDbEntity);
 
         DbHelper dbHelper = new 
FlavorAwareDbHelper(COMMON_SCHEMA.dataSource(), quotingStrategy);
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/dba/TestDbAdapter.java 
b/cayenne/src/test/java/org/apache/cayenne/unit/dba/TestDbAdapter.java
index 0dda10c04..be9fb24a1 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/dba/TestDbAdapter.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/dba/TestDbAdapter.java
@@ -140,9 +140,7 @@ public abstract class TestDbAdapter {
                 continue;
             }
 
-            DataMap dataMap = entity.getDataMap();
-            QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                    ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+            QuotingStrategy quotes = adapter.getQuotingStrategy(entity);
 
             for (String constraint : constraints) {
 
@@ -331,9 +329,7 @@ public abstract class TestDbAdapter {
                 continue;
             }
 
-            DataMap dataMap = entity.getDataMap();
-            QuotingStrategy quotes = dataMap != null && 
dataMap.isQuotingSQLIdentifiers()
-                    ? adapter.getQuotingStrategy() : QuotingStrategy.NONE;
+            QuotingStrategy quotes = adapter.getQuotingStrategy(entity);
 
             // Get all constraints for the table
             try (ResultSet rs = metadata.getExportedKeys(entity.getCatalog(), 
entity.getSchema(), entity.getName())) {


Reply via email to