Class BroadleafDialectFactoryInitiator

java.lang.Object
com.broadleafcommerce.common.jpa.data.dialect.BroadleafDialectFactoryInitiator
All Implemented Interfaces:
org.hibernate.boot.registry.StandardServiceInitiator<org.hibernate.engine.jdbc.dialect.spi.DialectFactory>, org.hibernate.service.spi.ServiceInitiator<org.hibernate.engine.jdbc.dialect.spi.DialectFactory>

public class BroadleafDialectFactoryInitiator extends Object implements org.hibernate.boot.registry.StandardServiceInitiator<org.hibernate.engine.jdbc.dialect.spi.DialectFactory>
A Hibernate service initiator that registers a custom DialectFactory within Hibernate's standard service registry.

This initiator intercepts the creation of the active Dialect by wrapping the default Hibernate DialectFactoryImpl. When a dialect is built, it is automatically passed through BroadleafDialectEnhancer.enhance(org.hibernate.dialect.Dialect) to dynamically decorate or subclass it at runtime.

See Also:
  • Constructor Details

    • BroadleafDialectFactoryInitiator

      public BroadleafDialectFactoryInitiator()
  • Method Details

    • getServiceInitiated

      public Class<org.hibernate.engine.jdbc.dialect.spi.DialectFactory> getServiceInitiated()
      Declares the type of Hibernate service initiated by this class.
      Specified by:
      getServiceInitiated in interface org.hibernate.service.spi.ServiceInitiator<org.hibernate.engine.jdbc.dialect.spi.DialectFactory>
      Returns:
      the DialectFactory class reference
    • initiateService

      public org.hibernate.engine.jdbc.dialect.spi.DialectFactory initiateService(Map<String,Object> configurationValues, org.hibernate.service.spi.ServiceRegistryImplementor registry)
      Initiates the custom DialectFactory service by retrieving and wrapping Hibernate's standard dialect factory initiator.

      The default Hibernate DialectFactoryImpl is first initiated, injected with service registry dependencies, and then decorated with a lambda delegate that intercepts buildDialect calls to enhance the resolved dialect using ByteBuddy via BroadleafDialectEnhancer.enhance(org.hibernate.dialect.Dialect).

      Specified by:
      initiateService in interface org.hibernate.boot.registry.StandardServiceInitiator<org.hibernate.engine.jdbc.dialect.spi.DialectFactory>
      Parameters:
      configurationValues - the configuration settings map
      registry - the Hibernate service registry implementor
      Returns:
      the wrapped DialectFactory service instance