| Hello Hibernate team, it does not seem possible to easily set up a PhysicalNamingStrategy from a property files. I am in a Spring environment, so the following occurs.
- A configuration instance is created (from org.hibernate.cfg.Configuration#Configuration(org.hibernate.boot.registry.BootstrapServiceRegistry))
- the Session factory is built through org.hibernate.cfg.Configuration#buildSessionFactory(org.hibernate.service.ServiceRegistry)
In that context, all information regarding regarding PhysicalNamingStrategy are correctly extracted from the service registry, while creating the metadataBuilder.
public SessionFactory buildSessionFactory(ServiceRegistry serviceRegistry) throws HibernateException {
log.debug( "Building session factory using provided StandardServiceRegistry" );
final MetadataBuilder metadataBuilder = metadataSources.getMetadataBuilder( (StandardServiceRegistry) serviceRegistry );
if ( implicitNamingStrategy != null ) {
metadataBuilder.applyImplicitNamingStrategy( implicitNamingStrategy );
}
if ( physicalNamingStrategy != null ) {
metadataBuilder.applyPhysicalNamingStrategy( physicalNamingStrategy );
}
....
}
However, it then hits the line testing if physicalNamingStrategy is already defined in Configuration instance. As all constructor calls #reset(), that sets physicalNamingStrategy to PhysicalNamingStrategyStandardImpl.INSTANCE, it is never null, and client configuration previously set is always overridden. Regards |