You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by bo...@apache.org on 2025/07/10 03:01:56 UTC
(grails-core) 18/22: replaced dependency on deprecated NamingStrategy with PhysicalNamingStrategy
This is an automated email from the ASF dual-hosted git repository.
borinquenkid pushed a commit to branch merge-hibernate6
in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 63b9db61eb7ac2d882b1ab0fb61ad5f7b083a7e4
Author: Walter Duque de Estrada <wb...@mac.com>
AuthorDate: Sat Jul 5 23:21:45 2025 -0500
replaced dependency on deprecated NamingStrategy with PhysicalNamingStrategy
---
.../HibernateMappingContextSessionFactoryBean.java | 8 +-
.../orm/hibernate/cfg/GrailsDomainBinder.java | 152 ++++++++++++++-------
.../HibernateConnectionSourceFactory.java | 4 +-
.../HibernateConnectionSourceSettings.groovy | 6 +-
4 files changed, 111 insertions(+), 59 deletions(-)
diff --git a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/HibernateMappingContextSessionFactoryBean.java b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/HibernateMappingContextSessionFactoryBean.java
index 9215893e11..d2466634b3 100644
--- a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/HibernateMappingContextSessionFactoryBean.java
+++ b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/HibernateMappingContextSessionFactoryBean.java
@@ -8,9 +8,9 @@ import org.grails.orm.hibernate.cfg.HibernateMappingContextConfiguration;
import org.hibernate.HibernateException;
import org.hibernate.Interceptor;
import org.hibernate.SessionFactory;
+import org.hibernate.boot.model.naming.PhysicalNamingStrategy;
import org.hibernate.cfg.Configuration;
import org.hibernate.cfg.Environment;
-import org.hibernate.cfg.NamingStrategy;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanClassLoaderAware;
@@ -57,7 +57,7 @@ public class HibernateMappingContextSessionFactoryBean extends HibernateExceptio
private Resource[] mappingJarLocations;
private Resource[] mappingDirectoryLocations;
private Interceptor entityInterceptor;
- private NamingStrategy namingStrategy;
+ private PhysicalNamingStrategy namingStrategy;
private Properties hibernateProperties;
private Class<?>[] annotatedClasses;
private String[] annotatedPackages;
@@ -245,10 +245,10 @@ public class HibernateMappingContextSessionFactoryBean extends HibernateExceptio
* Set a Hibernate NamingStrategy for the SessionFactory, determining the
* physical column and table names given the info in the mapping document.
*/
- public void setNamingStrategy(NamingStrategy namingStrategy) {
+ public void setNamingStrategy(PhysicalNamingStrategy namingStrategy) {
this.namingStrategy = namingStrategy;
}
- public NamingStrategy getNamingStrategy() {
+ public PhysicalNamingStrategy getNamingStrategy() {
return namingStrategy;
}
diff --git a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java
index d2b012aef8..d8ca9123d3 100644
--- a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java
+++ b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java
@@ -15,14 +15,21 @@
package org.grails.orm.hibernate.cfg;
import groovy.lang.Closure;
-
+import jakarta.persistence.Entity;
import org.codehaus.groovy.runtime.DefaultGroovyMethods;
import org.codehaus.groovy.transform.trait.Traits;
import org.grails.datastore.mapping.core.connections.ConnectionSource;
import org.grails.datastore.mapping.core.connections.ConnectionSourcesSupport;
-import org.grails.datastore.mapping.model.*;
+import org.grails.datastore.mapping.model.DatastoreConfigurationException;
+import org.grails.datastore.mapping.model.PersistentEntity;
+import org.grails.datastore.mapping.model.PersistentProperty;
import org.grails.datastore.mapping.model.config.GormProperties;
-import org.grails.datastore.mapping.model.types.*;
+import org.grails.datastore.mapping.model.types.Association;
+import org.grails.datastore.mapping.model.types.Basic;
+import org.grails.datastore.mapping.model.types.Embedded;
+import org.grails.datastore.mapping.model.types.ManyToMany;
+import org.grails.datastore.mapping.model.types.TenantId;
+import org.grails.datastore.mapping.model.types.ToMany;
import org.grails.datastore.mapping.model.types.ToOne;
import org.grails.datastore.mapping.reflect.EntityReflector;
import org.grails.datastore.mapping.reflect.NameUtils;
@@ -31,41 +38,78 @@ import org.hibernate.FetchMode;
import org.hibernate.MappingException;
import org.hibernate.boot.internal.MetadataBuildingContextRootImpl;
import org.hibernate.boot.model.internal.BinderHelper;
+import org.hibernate.boot.model.naming.CamelCaseToUnderscoresNamingStrategy;
import org.hibernate.boot.model.naming.Identifier;
-import org.hibernate.boot.spi.*;
-import org.hibernate.cfg.*;
+import org.hibernate.boot.model.naming.PhysicalNamingStrategy;
+import org.hibernate.boot.spi.AccessType;
+import org.hibernate.boot.spi.InFlightMetadataCollector;
+import org.hibernate.boot.spi.MetadataBuildingContext;
+import org.hibernate.boot.spi.MetadataContributor;
import org.hibernate.engine.OptimisticLockStyle;
+import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment;
import org.hibernate.engine.spi.FilterDefinition;
import org.hibernate.engine.spi.PersistentAttributeInterceptable;
import org.hibernate.id.PersistentIdentifierGenerator;
import org.hibernate.id.enhanced.SequenceStyleGenerator;
-import org.hibernate.mapping.*;
+import org.hibernate.mapping.Backref;
+import org.hibernate.mapping.Bag;
+import org.hibernate.mapping.BasicValue;
import org.hibernate.mapping.Collection;
+import org.hibernate.mapping.Column;
+import org.hibernate.mapping.Component;
+import org.hibernate.mapping.DependantValue;
+import org.hibernate.mapping.Formula;
+import org.hibernate.mapping.IndexBackref;
+import org.hibernate.mapping.IndexedCollection;
+import org.hibernate.mapping.JoinedSubclass;
+import org.hibernate.mapping.KeyValue;
import org.hibernate.mapping.ManyToOne;
import org.hibernate.mapping.OneToMany;
import org.hibernate.mapping.OneToOne;
+import org.hibernate.mapping.PersistentClass;
+import org.hibernate.mapping.PrimaryKey;
+import org.hibernate.mapping.Property;
+import org.hibernate.mapping.RootClass;
+import org.hibernate.mapping.Selectable;
+import org.hibernate.mapping.SimpleValue;
+import org.hibernate.mapping.SingleTableSubclass;
+import org.hibernate.mapping.Subclass;
import org.hibernate.mapping.Table;
+import org.hibernate.mapping.UnionSubclass;
+import org.hibernate.mapping.UniqueKey;
+import org.hibernate.mapping.Value;
import org.hibernate.metamodel.mapping.JdbcMapping;
import org.hibernate.persister.entity.UnionSubclassEntityPersister;
-import org.hibernate.type.*;
+import org.hibernate.type.EnumType;
+import org.hibernate.type.ForeignKeyDirection;
+import org.hibernate.type.StandardBasicTypes;
+import org.hibernate.type.Type;
import org.hibernate.usertype.UserCollectionType;
import org.jboss.jandex.IndexView;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.StringUtils;
-import jakarta.persistence.Entity;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Method;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.sql.Types;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
import java.util.Set;
-import static java.util.Optional.ofNullable;
+import java.util.SortedSet;
+import java.util.StringTokenizer;
+
+;import static org.hibernate.boot.model.naming.Identifier.toIdentifier;
/**
* Handles the binding Grails domain classes and properties to the Hibernate runtime meta model.
@@ -97,9 +141,9 @@ public class GrailsDomainBinder implements MetadataContributor {
* Overrideable naming strategy. Defaults to <code>ImprovedNamingStrategy</code> but can
* be configured in DataSource.groovy via <code>hibernate.naming_strategy = ...</code>.
*/
- public static Map<String, NamingStrategy> NAMING_STRATEGIES = new HashMap<>();
+ public static Map<String, PhysicalNamingStrategy> NAMING_STRATEGIES = new HashMap<>();
static {
- NAMING_STRATEGIES.put(ConnectionSource.DEFAULT, ImprovedNamingStrategy.INSTANCE);
+ NAMING_STRATEGIES.put(ConnectionSource.DEFAULT, new CamelCaseToUnderscoresNamingStrategy());
}
private final CollectionType CT = new CollectionType(null, this) {
@@ -115,6 +159,12 @@ public class GrailsDomainBinder implements MetadataContributor {
private PersistentEntityNamingStrategy namingStrategy;
private MetadataBuildingContext metadataBuildingContext;
+ public JdbcEnvironment getJdbcEnvironment() {
+ return metadataBuildingContext.getMetadataCollector().getDatabase().getJdbcEnvironment();
+ }
+
+
+
public GrailsDomainBinder(
String dataSourceName,
String sessionFactoryName,
@@ -188,7 +238,7 @@ public class GrailsDomainBinder implements MetadataContributor {
/**
* Override the default naming strategy given a Class or a full class name,
- * or an instance of a NamingStrategy.
+ * or an instance of a PhysicalNamingStrategy.
*
* @param datasourceName the datasource name
* @param strategy the class, name, or instance
@@ -198,7 +248,7 @@ public class GrailsDomainBinder implements MetadataContributor {
*/
public static void configureNamingStrategy(final String datasourceName, final Object strategy) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
Class<?> namingStrategyClass = null;
- NamingStrategy namingStrategy;
+ PhysicalNamingStrategy namingStrategy;
if (strategy instanceof Class<?>) {
namingStrategyClass = (Class<?>)strategy;
}
@@ -207,10 +257,10 @@ public class GrailsDomainBinder implements MetadataContributor {
}
if (namingStrategyClass == null) {
- namingStrategy = (NamingStrategy)strategy;
+ namingStrategy = (PhysicalNamingStrategy)strategy;
}
else {
- namingStrategy = (NamingStrategy)namingStrategyClass.newInstance();
+ namingStrategy = (PhysicalNamingStrategy)namingStrategyClass.newInstance();
}
NAMING_STRATEGIES.put(datasourceName, namingStrategy);
@@ -658,7 +708,7 @@ public class GrailsDomainBinder implements MetadataContributor {
private void bindCollectionWithJoinTable(ToMany property,
InFlightMetadataCollector mappings, Collection collection, PropertyConfig config, String sessionFactoryBeanName) {
- NamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
+ PhysicalNamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
SimpleValue element;
final boolean isBasicCollectionType = property instanceof Basic;
@@ -683,9 +733,11 @@ public class GrailsDomainBinder implements MetadataContributor {
columnName = config.getJoinTable().getColumn().getName();
}
else {
- columnName = isEnum ? namingStrategy.propertyToColumnName(className) :
- addUnderscore(namingStrategy.propertyToColumnName(property.getName()),
- namingStrategy.propertyToColumnName(className));
+
+
+ var s = namingStrategy.toPhysicalColumnName(toIdentifier(className),getJdbcEnvironment());
+ var p = namingStrategy.toPhysicalColumnName(toIdentifier(property.getName()),getJdbcEnvironment());
+ columnName = isEnum ? s.toString() : addUnderscore(p.toString(), s.toString());
}
if (isEnum) {
@@ -724,7 +776,8 @@ public class GrailsDomainBinder implements MetadataContributor {
columnName = config.getJoinTable().getColumn().getName();
}
else {
- columnName = namingStrategy.propertyToColumnName(NameUtils.decapitalize(domainClass.getName())) + FOREIGN_KEY_SUFFIX;
+ Identifier decapitalize = toIdentifier(NameUtils.decapitalize(domainClass.getName()));
+ columnName = namingStrategy.toPhysicalColumnName(decapitalize,getJdbcEnvironment()).toString() + FOREIGN_KEY_SUFFIX;
}
bindSimpleValue("long", element,true, columnName, mappings);
@@ -1112,8 +1165,9 @@ public class GrailsDomainBinder implements MetadataContributor {
PropertyConfig config = getPropertyConfig(property);
JoinTable jt = config != null ? config.getJoinTable() : null;
- NamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
- String tableName = (jt != null && jt.getName() != null ? jt.getName() : namingStrategy.tableName(calculateTableForMany(property, sessionFactoryBeanName)));
+ PhysicalNamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
+ String s = calculateTableForMany(property, sessionFactoryBeanName);
+ String tableName = (jt != null && jt.getName() != null ? jt.getName() : namingStrategy.toPhysicalTableName(toIdentifier(s),getJdbcEnvironment()).toString());
String schemaName = getSchemaName(mappings);
String catalogName = getCatalogName(mappings);
if(jt != null) {
@@ -1140,9 +1194,9 @@ public class GrailsDomainBinder implements MetadataContributor {
* where you have two mapping tables for left_right and right_left
*/
private String calculateTableForMany(ToMany property, String sessionFactoryBeanName) {
- NamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
+ PhysicalNamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
- String propertyColumnName = namingStrategy.propertyToColumnName(property.getName());
+ String propertyColumnName = namingStrategy.toPhysicalColumnName(toIdentifier(property.getName()), getJdbcEnvironment()).toString();
//fix for GRAILS-5895
PropertyConfig config = getPropertyConfig(property);
JoinTable jt = config != null ? config.getJoinTable() : null;
@@ -1169,14 +1223,15 @@ public class GrailsDomainBinder implements MetadataContributor {
String right = getTableName(property.getAssociatedEntity(), sessionFactoryBeanName);
- if (property instanceof ManyToMany) {
+ if (property instanceof ManyToMany property1) {
if (hasJoinTableMapping) {
return jt.getName();
}
if (property.isOwningSide()) {
return addUnderscore(left, propertyColumnName);
}
- return addUnderscore(right, namingStrategy.propertyToColumnName(((ManyToMany) property).getInversePropertyName()));
+ Identifier inversePropertyName = toIdentifier(property1.getInversePropertyName());
+ return addUnderscore(right, namingStrategy.toPhysicalColumnName(inversePropertyName,getJdbcEnvironment()).toString());
}
if (shouldCollectionBindWithJoinColumn(property)) {
@@ -1221,18 +1276,18 @@ public class GrailsDomainBinder implements MetadataContributor {
tableName = namingStrategy.resolveTableName(domainClass);
}
if(tableName == null) {
- tableName = getNamingStrategy(sessionFactoryBeanName).classToTableName(shortName);
+ tableName = getNamingStrategy(sessionFactoryBeanName).toPhysicalTableName(toIdentifier(shortName),getJdbcEnvironment()).toString();
}
}
return tableName;
}
- private NamingStrategy getNamingStrategy(String sessionFactoryBeanName) {
+ private PhysicalNamingStrategy getNamingStrategy(String sessionFactoryBeanName) {
String key = "sessionFactory".equals(sessionFactoryBeanName) ?
ConnectionSource.DEFAULT :
sessionFactoryBeanName.substring("sessionFactory_".length());
- NamingStrategy namingStrategy = NAMING_STRATEGIES.get(key);
- return namingStrategy != null ? namingStrategy : new ImprovedNamingStrategy();
+ PhysicalNamingStrategy namingStrategy = NAMING_STRATEGIES.get(key);
+ return namingStrategy != null ? namingStrategy : new CamelCaseToUnderscoresNamingStrategy();
}
/**
@@ -2328,7 +2383,7 @@ public class GrailsDomainBinder implements MetadataContributor {
private void bindManyToOne(Association property, ManyToOne manyToOne,
String path, InFlightMetadataCollector mappings, String sessionFactoryBeanName) {
- NamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
+ PhysicalNamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
bindManyToOneValues(property, manyToOne);
PersistentEntity refDomainClass = property instanceof ManyToMany ? property.getOwner() : property.getAssociatedEntity();
@@ -2348,8 +2403,7 @@ public class GrailsDomainBinder implements MetadataContributor {
if (!hasJoinKeyMapping(pc) ) {
JoinTable jt = new JoinTable();
final ColumnConfig columnConfig = new ColumnConfig();
- columnConfig.setName(namingStrategy.propertyToColumnName(property.getName()) +
- UNDERSCORE + FOREIGN_KEY_SUFFIX);
+ columnConfig.setName(namingStrategy.toPhysicalColumnName(toIdentifier(property.getName()), getJdbcEnvironment()).toString() + UNDERSCORE + FOREIGN_KEY_SUFFIX);
jt.setKey(columnConfig);
pc.setJoinTable(jt);
}
@@ -2378,7 +2432,7 @@ public class GrailsDomainBinder implements MetadataContributor {
SimpleValue value, CompositeIdentity compositeId, PersistentEntity refDomainClass,
String path, String sessionFactoryBeanName) {
- NamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
+ PhysicalNamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
String[] propertyNames = compositeId.getPropertyNames();
PropertyConfig config = getPropertyConfig(property);
@@ -2412,7 +2466,7 @@ public class GrailsDomainBinder implements MetadataContributor {
if(compositeIdentity != null) {
for (PersistentProperty cip : compositeIdentity) {
// for each property of a composite id by default we use the table name and the property name as a prefix
- String compositeIdPrefix = addUnderscore(prefix, namingStrategy.propertyToColumnName(referencedProperty.getName()));
+ String compositeIdPrefix = addUnderscore(prefix, namingStrategy.toPhysicalColumnName(toIdentifier(referencedProperty.getName()), getJdbcEnvironment()).toString());
String suffix = getDefaultColumnName(cip, sessionFactoryBeanName);
String finalColumnName = addUnderscore(compositeIdPrefix, suffix);
cc = new ColumnConfig();
@@ -3098,7 +3152,7 @@ public class GrailsDomainBinder implements MetadataContributor {
private String getColumnNameForPropertyAndPath(PersistentProperty grailsProp,
String path, ColumnConfig cc, String sessionFactoryBeanName) {
- NamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
+ PhysicalNamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
// First try the column config.
String columnName = null;
@@ -3134,7 +3188,7 @@ public class GrailsDomainBinder implements MetadataContributor {
if (columnName == null) {
if (isNotEmpty(path)) {
- columnName = addUnderscore(namingStrategy.propertyToColumnName(path),
+ columnName = addUnderscore(namingStrategy.toPhysicalColumnName(toIdentifier(path), getJdbcEnvironment()).toString(),
getDefaultColumnName(grailsProp, sessionFactoryBeanName));
} else {
columnName = getDefaultColumnName(grailsProp, sessionFactoryBeanName);
@@ -3153,9 +3207,9 @@ public class GrailsDomainBinder implements MetadataContributor {
private String getDefaultColumnName(PersistentProperty property, String sessionFactoryBeanName) {
- NamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
+ PhysicalNamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
- String columnName = namingStrategy.propertyToColumnName(property.getName());
+ String columnName = namingStrategy.toPhysicalColumnName(toIdentifier(property.getName()), getJdbcEnvironment()).toString();
if (property instanceof Association) {
Association association = (Association) property;
boolean isBasic = property instanceof Basic;
@@ -3172,12 +3226,12 @@ public class GrailsDomainBinder implements MetadataContributor {
}
if (!association.isBidirectional() && association instanceof org.grails.datastore.mapping.model.types.OneToMany) {
- String prefix = namingStrategy.classToTableName(property.getOwner().getName());
+ String prefix = namingStrategy.toPhysicalTableName(toIdentifier(property.getOwner().getName()), getJdbcEnvironment()).toString();
return addUnderscore(prefix, columnName) + FOREIGN_KEY_SUFFIX;
}
if (property.isInherited() && isBidirectionalManyToOne(property)) {
- return namingStrategy.propertyToColumnName(property.getOwner().getName()) + '_'+ columnName + FOREIGN_KEY_SUFFIX;
+ return namingStrategy.toPhysicalColumnName(toIdentifier(property.getOwner().getName()), getJdbcEnvironment()).toString() + '_'+ columnName + FOREIGN_KEY_SUFFIX;
}
return columnName + FOREIGN_KEY_SUFFIX;
@@ -3190,8 +3244,8 @@ public class GrailsDomainBinder implements MetadataContributor {
private String getForeignKeyForPropertyDomainClass(PersistentProperty property,
String sessionFactoryBeanName) {
final String propertyName = NameUtils.decapitalize( property.getOwner().getName() );
- NamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
- return namingStrategy.propertyToColumnName(propertyName) + FOREIGN_KEY_SUFFIX;
+ PhysicalNamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
+ return namingStrategy.toPhysicalColumnName(toIdentifier(propertyName), getJdbcEnvironment()).toString() + FOREIGN_KEY_SUFFIX;
}
private String getIndexColumnName(PersistentProperty property, String sessionFactoryBeanName) {
@@ -3199,8 +3253,8 @@ public class GrailsDomainBinder implements MetadataContributor {
if (pc != null && pc.getIndexColumn() != null && pc.getIndexColumn().getColumn() != null) {
return pc.getIndexColumn().getColumn();
}
- NamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
- return namingStrategy.propertyToColumnName(property.getName()) + UNDERSCORE + IndexedCollection.DEFAULT_INDEX_COLUMN_NAME;
+ PhysicalNamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
+ return namingStrategy.toPhysicalColumnName(toIdentifier(property.getName()), getJdbcEnvironment()).toString() + UNDERSCORE + IndexedCollection.DEFAULT_INDEX_COLUMN_NAME;
}
private String getIndexColumnType(PersistentProperty property, String defaultType) {
@@ -3218,8 +3272,8 @@ public class GrailsDomainBinder implements MetadataContributor {
return pc.getJoinTable().getColumn().getName();
}
- NamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
- return namingStrategy.propertyToColumnName(property.getName()) + UNDERSCORE + IndexedCollection.DEFAULT_ELEMENT_COLUMN_NAME;
+ PhysicalNamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
+ return namingStrategy.toPhysicalColumnName(toIdentifier(property.getName()), getJdbcEnvironment()).toString() + UNDERSCORE + IndexedCollection.DEFAULT_ELEMENT_COLUMN_NAME;
}
private boolean hasJoinTableColumnNameMapping(PropertyConfig pc) {
@@ -3577,5 +3631,3 @@ public class GrailsDomainBinder implements MetadataContributor {
}
}
-
-
diff --git a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/connections/HibernateConnectionSourceFactory.java b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/connections/HibernateConnectionSourceFactory.java
index 41f8f7928b..76b24aa4b8 100644
--- a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/connections/HibernateConnectionSourceFactory.java
+++ b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/connections/HibernateConnectionSourceFactory.java
@@ -14,9 +14,9 @@ import org.grails.orm.hibernate.support.AbstractClosureEventTriggeringIntercepto
import org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor;
import org.hibernate.Interceptor;
import org.hibernate.SessionFactory;
+import org.hibernate.boot.model.naming.PhysicalNamingStrategy;
import org.hibernate.boot.spi.MetadataContributor;
import org.hibernate.cfg.Configuration;
-import org.hibernate.cfg.NamingStrategy;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
@@ -225,7 +225,7 @@ public class HibernateConnectionSourceFactory extends AbstractHibernateConnectio
hibernateSettings.setEventTriggeringInterceptor(eventTriggeringInterceptor);
try {
- Class<? extends NamingStrategy> namingStrategy = hibernateSettings.getNaming_strategy();
+ Class<? extends PhysicalNamingStrategy> namingStrategy = hibernateSettings.getNaming_strategy();
if(namingStrategy != null) {
GrailsDomainBinder.configureNamingStrategy(name, namingStrategy);
}
diff --git a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/connections/HibernateConnectionSourceSettings.groovy b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/connections/HibernateConnectionSourceSettings.groovy
index 5d329ffec4..f7d2b2b4c2 100644
--- a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/connections/HibernateConnectionSourceSettings.groovy
+++ b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/connections/HibernateConnectionSourceSettings.groovy
@@ -10,10 +10,10 @@ import org.grails.datastore.gorm.jdbc.connections.DataSourceSettings
import org.grails.orm.hibernate.dirty.GrailsEntityDirtinessStrategy
import org.grails.orm.hibernate.support.AbstractClosureEventTriggeringInterceptor
import org.hibernate.CustomEntityDirtinessStrategy
+import org.hibernate.boot.model.naming.CamelCaseToUnderscoresNamingStrategy
+import org.hibernate.boot.model.naming.PhysicalNamingStrategy
import org.hibernate.cfg.AvailableSettings
import org.hibernate.cfg.Configuration
-import org.hibernate.cfg.ImprovedNamingStrategy
-import org.hibernate.cfg.NamingStrategy
import org.springframework.core.io.Resource
/**
@@ -89,7 +89,7 @@ class HibernateConnectionSourceSettings extends ConnectionSourceSettings {
/**
* The naming strategy
*/
- Class<? extends NamingStrategy> naming_strategy = ImprovedNamingStrategy
+ Class<? extends PhysicalNamingStrategy> naming_strategy = CamelCaseToUnderscoresNamingStrategy
/**
*