diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/internal/AggregateComponentSecondPass.java b/hibernate-core/src/main/java/org/hibernate/boot/model/internal/AggregateComponentSecondPass.java index 247e910a52b7..3e44086f892f 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/internal/AggregateComponentSecondPass.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/internal/AggregateComponentSecondPass.java @@ -151,11 +151,7 @@ public void doSecondPass(Map persistentClasses) throws if ( subColumn.getCustomReadExpression() == null ) { if ( subColumn.isFormula() ) { customReadExpression = aggregateSupport.aggregateComponentCustomReadExpression( - subColumn.getTemplate( - dialect, - typeConfiguration, - null - ), + subColumn.getTemplate( dialect, typeConfiguration ), Template.TEMPLATE + ".", aggregateReadTemplate, "", diff --git a/hibernate-core/src/main/java/org/hibernate/internal/SessionFactoryImpl.java b/hibernate-core/src/main/java/org/hibernate/internal/SessionFactoryImpl.java index e1948d68b488..d73ce9a7a856 100644 --- a/hibernate-core/src/main/java/org/hibernate/internal/SessionFactoryImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/internal/SessionFactoryImpl.java @@ -288,16 +288,8 @@ public SessionFactoryImpl( runtimeMetamodels = runtimeMetamodelsImpl; // we build this before creating the runtime metamodels - // because the persisters need the SqmFunctionRegistry - // to translate SQL formulas. But, if we fix Dialect - // as I proposed, so that it can contribute functions - // to the SqmFunctionRegistry before the QueryEngine is - // created, then we can split creation of QueryEngine - // and SqmFunctionRegistry, instantiating just the - // registry here, and doing the engine later, and we - // can thus untie this nasty little knot. Alternatively, - // perhaps it's not really appropriate that they use the - // SqmFunctionRegistry for that purpose at all? + // because the SqlAstTranslators (unnecessarily, perhaps) + // use the SqmFunctionRegistry when rendering SQL for Loaders queryEngine = new QueryEngineImpl( bootMetamodel, options, runtimeMetamodels, serviceRegistry, settings, name ); final Map fetchProfiles = new HashMap<>(); sqlTranslationEngine = new SqlTranslationEngineImpl( this, typeConfiguration, fetchProfiles ); diff --git a/hibernate-core/src/main/java/org/hibernate/mapping/Column.java b/hibernate-core/src/main/java/org/hibernate/mapping/Column.java index 937aca41fdb1..b974eb016e3f 100644 --- a/hibernate-core/src/main/java/org/hibernate/mapping/Column.java +++ b/hibernate-core/src/main/java/org/hibernate/mapping/Column.java @@ -21,7 +21,6 @@ import org.hibernate.engine.jdbc.Size; import org.hibernate.loader.internal.AliasConstantsHelper; import org.hibernate.metamodel.mapping.JdbcMapping; -import org.hibernate.query.sqm.function.SqmFunctionRegistry; import org.hibernate.sql.Template; import org.hibernate.tool.schema.extract.spi.ColumnTypeInformation; import org.hibernate.type.BasicType; @@ -622,7 +621,7 @@ public boolean hasCheckConstraint() { } @Override - public String getTemplate(Dialect dialect, TypeConfiguration typeConfiguration, SqmFunctionRegistry registry) { + public String getTemplate(Dialect dialect, TypeConfiguration typeConfiguration) { return safeInterning( hasCustomRead() // see note in renderTransformerReadFragment wrt access to SessionFactory diff --git a/hibernate-core/src/main/java/org/hibernate/mapping/Formula.java b/hibernate-core/src/main/java/org/hibernate/mapping/Formula.java index 0a911152ae26..14f9e0c4db1d 100644 --- a/hibernate-core/src/main/java/org/hibernate/mapping/Formula.java +++ b/hibernate-core/src/main/java/org/hibernate/mapping/Formula.java @@ -9,7 +9,6 @@ import org.hibernate.dialect.Dialect; import org.hibernate.loader.internal.AliasConstantsHelper; -import org.hibernate.query.sqm.function.SqmFunctionRegistry; import org.hibernate.type.spi.TypeConfiguration; import static org.hibernate.internal.util.StringHelper.replace; @@ -40,7 +39,7 @@ public Formula(String formula) { } @Override - public String getTemplate(Dialect dialect, TypeConfiguration typeConfiguration, SqmFunctionRegistry registry) { + public String getTemplate(Dialect dialect, TypeConfiguration typeConfiguration) { final String template = renderWhereStringTemplate( formula, dialect, typeConfiguration ); return safeInterning( replace( template, "{alias}", TEMPLATE ) ); } diff --git a/hibernate-core/src/main/java/org/hibernate/mapping/IdentifierCollection.java b/hibernate-core/src/main/java/org/hibernate/mapping/IdentifierCollection.java index fef01aece8da..7601ebd75615 100644 --- a/hibernate-core/src/main/java/org/hibernate/mapping/IdentifierCollection.java +++ b/hibernate-core/src/main/java/org/hibernate/mapping/IdentifierCollection.java @@ -26,7 +26,10 @@ public IdentifierCollection(MetadataBuildingContext buildingContext, PersistentC super( buildingContext, owner ); } - public IdentifierCollection(Supplier> customTypeBeanResolver, PersistentClass owner, MetadataBuildingContext buildingContext) { + public IdentifierCollection( + Supplier> customTypeBeanResolver, + PersistentClass owner, + MetadataBuildingContext buildingContext) { super( customTypeBeanResolver, owner, buildingContext ); } @@ -38,9 +41,11 @@ protected IdentifierCollection(IdentifierCollection original) { public KeyValue getIdentifier() { return identifier; } + public void setIdentifier(KeyValue identifier) { this.identifier = identifier; } + public final boolean isIdentified() { return true; } @@ -48,12 +53,12 @@ public final boolean isIdentified() { @Override public boolean isSame(Collection other) { return other instanceof IdentifierCollection - && isSame( (IdentifierCollection) other ); + && isSame( (IdentifierCollection) other ); } public boolean isSame(IdentifierCollection other) { return super.isSame( other ) - && isSame( identifier, other.identifier ); + && isSame( identifier, other.identifier ); } void createPrimaryKey() { diff --git a/hibernate-core/src/main/java/org/hibernate/mapping/PersistentClass.java b/hibernate-core/src/main/java/org/hibernate/mapping/PersistentClass.java index 079eed89fda2..a0f2ca5470f6 100644 --- a/hibernate-core/src/main/java/org/hibernate/mapping/PersistentClass.java +++ b/hibernate-core/src/main/java/org/hibernate/mapping/PersistentClass.java @@ -29,7 +29,6 @@ import org.hibernate.jdbc.Expectation; import org.hibernate.jpa.event.spi.CallbackDefinition; import org.hibernate.metamodel.spi.RuntimeModelCreationContext; -import org.hibernate.query.sqm.function.SqmFunctionRegistry; import org.hibernate.service.ServiceRegistry; import org.hibernate.sql.Alias; import org.hibernate.type.CollectionType; @@ -1019,7 +1018,6 @@ public void prepareForMappingModel(RuntimeModelCreationContext context) { // in SQL formulas final Dialect dialect = context.getDialect(); final TypeConfiguration types = context.getTypeConfiguration(); - final SqmFunctionRegistry functions = context.getFunctionRegistry(); // now, move @Formulas to the correct AttributeContainers //TODO: skip this step for hbm.xml @@ -1028,7 +1026,7 @@ public void prepareForMappingModel(RuntimeModelCreationContext context) { if ( selectable.isFormula() && properties.contains( property ) ) { final Formula formula = (Formula) selectable; final AttributeContainer container = - container( collectColumnNames( formula.getTemplate( dialect, types, functions ) ) ); + container( collectColumnNames( formula.getTemplate( dialect, types ) ) ); if ( !container.contains( property ) ) { properties.remove( property ); container.addProperty( property ); diff --git a/hibernate-core/src/main/java/org/hibernate/mapping/Selectable.java b/hibernate-core/src/main/java/org/hibernate/mapping/Selectable.java index a48867bda2f5..cd5124559571 100644 --- a/hibernate-core/src/main/java/org/hibernate/mapping/Selectable.java +++ b/hibernate-core/src/main/java/org/hibernate/mapping/Selectable.java @@ -7,7 +7,6 @@ import org.hibernate.Incubating; import org.hibernate.dialect.Dialect; import org.hibernate.metamodel.mapping.JdbcMapping; -import org.hibernate.query.sqm.function.SqmFunctionRegistry; import org.hibernate.type.spi.TypeConfiguration; /** @@ -61,7 +60,7 @@ public sealed interface Selectable permits Column, Formula { @Deprecated(since = "6.0") String getAlias(Dialect dialect, Table table); - String getTemplate(Dialect dialect, TypeConfiguration typeConfiguration, SqmFunctionRegistry functionRegistry); + String getTemplate(Dialect dialect, TypeConfiguration typeConfiguration); @Incubating default String getWriteExpr() { diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/AbstractEmbeddableMapping.java b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/AbstractEmbeddableMapping.java index 10a5ff61298c..18e2c95b9687 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/AbstractEmbeddableMapping.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/AbstractEmbeddableMapping.java @@ -309,8 +309,7 @@ protected boolean finishInitialization( if ( selectable.isFormula() ) { columnExpression = selectable.getTemplate( dialect, - creationProcess.getCreationContext().getTypeConfiguration(), - creationProcess.getSqmFunctionRegistry() + creationProcess.getCreationContext().getTypeConfiguration() ); } else { diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/EmbeddableMappingTypeImpl.java b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/EmbeddableMappingTypeImpl.java index cf72db608624..1b7838cd3a56 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/EmbeddableMappingTypeImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/EmbeddableMappingTypeImpl.java @@ -453,8 +453,7 @@ private boolean finishInitialization( if ( selectable.isFormula() ) { columnExpression = selectable.getTemplate( dialect, - creationProcess.getCreationContext().getTypeConfiguration(), - creationProcess.getSqmFunctionRegistry() + creationProcess.getCreationContext().getTypeConfiguration() ); } else { @@ -726,8 +725,7 @@ private EmbeddableDiscriminatorMapping generateDiscriminatorMapping( final Formula formula = (Formula) selectable; discriminatorColumnExpression = name = formula.getTemplate( creationContext.getDialect(), - creationContext.getTypeConfiguration(), - creationContext.getFunctionRegistry() + creationContext.getTypeConfiguration() ); columnDefinition = null; length = null; diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/SelectableMappingImpl.java b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/SelectableMappingImpl.java index 679ff69dbd52..3e300758ee91 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/SelectableMappingImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/SelectableMappingImpl.java @@ -172,7 +172,7 @@ public static SelectableMapping from( final boolean isLob; final boolean isNullable; if ( selectable.isFormula() ) { - columnExpression = selectable.getTemplate( dialect, typeConfiguration, sqmFunctionRegistry ); + columnExpression = selectable.getTemplate( dialect, typeConfiguration ); columnDefinition = null; length = null; precision = null; diff --git a/hibernate-core/src/main/java/org/hibernate/persister/collection/AbstractCollectionPersister.java b/hibernate-core/src/main/java/org/hibernate/persister/collection/AbstractCollectionPersister.java index 0ae78b52ea14..ce21eaf0b2ff 100644 --- a/hibernate-core/src/main/java/org/hibernate/persister/collection/AbstractCollectionPersister.java +++ b/hibernate-core/src/main/java/org/hibernate/persister/collection/AbstractCollectionPersister.java @@ -126,6 +126,7 @@ import org.hibernate.type.CompositeType; import org.hibernate.type.EntityType; import org.hibernate.type.Type; +import org.hibernate.type.spi.TypeConfiguration; import java.sql.PreparedStatement; import java.sql.ResultSet; @@ -284,7 +285,8 @@ public AbstractCollectionPersister( sqlExceptionHelper = creationContext.getJdbcServices().getSqlExceptionHelper(); collectionType = collectionBootDescriptor.getCollectionType(); navigableRole = new NavigableRole( collectionBootDescriptor.getRole() ); - ownerPersister = creationContext.getDomainModel().getEntityDescriptor( collectionBootDescriptor.getOwnerEntityName() ); + ownerPersister = creationContext.getDomainModel() + .getEntityDescriptor( collectionBootDescriptor.getOwnerEntityName() ); queryLoaderName = collectionBootDescriptor.getLoaderName(); isMutable = collectionBootDescriptor.isMutable(); mappedByProperty = collectionBootDescriptor.getMappedByProperty(); @@ -329,7 +331,7 @@ public AbstractCollectionPersister( keyColumnNames[k] = column.getQuotedName( dialect ); } else { - throw new MappingException("Collection keys may not contain formulas: " + navigableRole.getFullPath() ); + throw new MappingException( "Collection keys may not contain formulas: " + navigableRole.getFullPath() ); } k++; } @@ -350,6 +352,8 @@ public AbstractCollectionPersister( // because it is needed in OneToManyPersister.getTableName() spaces[0] = getTableName(); + final TypeConfiguration typeConfiguration = creationContext.getTypeConfiguration(); + final int elementSpan = elementBootDescriptor.getColumnSpan(); elementColumnAliases = new String[elementSpan]; elementColumnNames = new String[elementSpan]; @@ -371,11 +375,7 @@ public AbstractCollectionPersister( elementColumnAliases[j] = selectable.getAlias( dialect, table ); if ( selectable.isFormula() ) { Formula form = (Formula) selectable; - elementFormulaTemplates[j] = form.getTemplate( - dialect, - creationContext.getTypeConfiguration(), - creationContext.getFunctionRegistry() - ); + elementFormulaTemplates[j] = form.getTemplate( dialect, typeConfiguration ); elementFormulas[j] = form.getFormula(); } else { @@ -383,11 +383,7 @@ public AbstractCollectionPersister( elementColumnNames[j] = col.getQuotedName( dialect ); elementColumnWriters[j] = col.getWriteExpr( elementBootDescriptor.getSelectableType( factory.getRuntimeMetamodels(), j ), dialect ); elementColumnReaders[j] = col.getReadExpr( dialect ); - elementColumnReaderTemplates[j] = col.getTemplate( - dialect, - creationContext.getTypeConfiguration(), - creationContext.getFunctionRegistry() - ); + elementColumnReaderTemplates[j] = col.getTemplate( dialect, typeConfiguration ); elementColumnIsGettable[j] = true; if ( elementType instanceof ComponentType || elementType instanceof AnyType ) { // Implements desired behavior specifically for @ElementCollection mappings. @@ -425,11 +421,7 @@ public AbstractCollectionPersister( indexColumnAliases[i] = selectable.getAlias( dialect ); if ( selectable.isFormula() ) { final Formula indexForm = (Formula) selectable; - indexFormulaTemplates[i] = indexForm.getTemplate( - dialect, - creationContext.getTypeConfiguration(), - creationContext.getFunctionRegistry() - ); + indexFormulaTemplates[i] = indexForm.getTemplate( dialect, typeConfiguration ); indexFormulas[i] = indexForm.getFormula(); hasFormula = true; } @@ -529,11 +521,8 @@ public AbstractCollectionPersister( } else { manyToManyWhereString = "( " + collectionBootDescriptor.getManyToManyWhere() + ")"; - manyToManyWhereTemplate = renderWhereStringTemplate( - manyToManyWhereString, - creationContext.getDialect(), - creationContext.getTypeConfiguration() - ); + manyToManyWhereTemplate = + renderWhereStringTemplate( manyToManyWhereString, creationContext.getDialect(), typeConfiguration ); } comparator = collectionBootDescriptor.getComparator(); @@ -921,9 +910,7 @@ public boolean isArray() { @Override public String getIdentifierColumnName() { - return collectionSemantics.getCollectionClassification() == CollectionClassification.ID_BAG - ? identifierColumnName - : null; + return hasId() ? identifierColumnName : null; } /** @@ -986,7 +973,7 @@ public String selectFragment(String alias, String columnSuffix) { i++; } } - if ( collectionSemantics.getCollectionClassification() == CollectionClassification.ID_BAG ) { + if ( hasId() ) { sqlSelections.set( i, new SqlSelectionImpl( @@ -1074,6 +1061,10 @@ public boolean hasIndex() { return collectionSemantics.getCollectionClassification().isIndexed(); } + private boolean hasId() { + return collectionSemantics.getCollectionClassification() == CollectionClassification.ID_BAG; + } + @Override public boolean isLazy() { return isLazy; @@ -1405,7 +1396,7 @@ public void initCollectionPropertyMap() { if ( hasIndex() ) { initCollectionPropertyMap( "index", indexType, indexColumnAliases ); } - if ( collectionSemantics.getCollectionClassification() == CollectionClassification.ID_BAG ) { + if ( hasId() ) { initCollectionPropertyMap( "id", identifierType, new String[] { identifierColumnAlias } ); } } @@ -1867,21 +1858,11 @@ public String[] getElementColumnAliases(String suffix) { @Override public String[] getIndexColumnAliases(String suffix) { - if ( hasIndex() ) { - return new Alias( suffix ).toAliasStrings( indexColumnAliases ); - } - else { - return null; - } + return hasIndex() ? new Alias( suffix ).toAliasStrings( indexColumnAliases ) : null; } @Override public String getIdentifierColumnAlias(String suffix) { - if ( collectionSemantics.getCollectionClassification() == CollectionClassification.ID_BAG ) { - return new Alias( suffix ).toAliasString( identifierColumnAlias ); - } - else { - return null; - } + return hasId() ? new Alias( suffix ).toAliasString( identifierColumnAlias ) : null; } } diff --git a/hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java b/hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java index a745fddb55f8..9a6bca03267a 100644 --- a/hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java +++ b/hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java @@ -191,7 +191,6 @@ import org.hibernate.query.spi.QueryOptions; import org.hibernate.query.sql.internal.SQLQueryParser; import org.hibernate.query.sqm.ComparisonOperator; -import org.hibernate.query.sqm.function.SqmFunctionRegistry; import org.hibernate.query.sqm.mutation.spi.SqmMultiTableInsertStrategy; import org.hibernate.query.sqm.mutation.spi.SqmMultiTableMutationStrategy; import org.hibernate.query.sqm.mutation.spi.SqmMultiTableMutationStrategyProvider; @@ -547,18 +546,13 @@ public AbstractEntityPersister( queryLoaderName = persistentClass.getLoaderName(); final TypeConfiguration typeConfiguration = creationContext.getTypeConfiguration(); - final SqmFunctionRegistry functionRegistry = creationContext.getFunctionRegistry(); final List columns = persistentClass.getIdentifier().getColumns(); for (int i = 0; i < columns.size(); i++ ) { final Column column = columns.get(i); rootTableKeyColumnNames[i] = column.getQuotedName( dialect ); rootTableKeyColumnReaders[i] = column.getReadExpr( dialect ); - rootTableKeyColumnReaderTemplates[i] = column.getTemplate( - dialect, - typeConfiguration, - functionRegistry - ); + rootTableKeyColumnReaderTemplates[i] = column.getTemplate( dialect, typeConfiguration ); identifierAliases[i] = column.getAlias( dialect, persistentClass.getRootTable() ); } @@ -626,8 +620,7 @@ public AbstractEntityPersister( formula.setFormula( substituteBrackets( formula.getFormula() ) ); formulaTemplates[k] = selectable.getTemplate( dialect, - typeConfiguration, - functionRegistry + typeConfiguration ); } else { @@ -702,11 +695,7 @@ public AbstractEntityPersister( for ( int i = 0; i < selectables.size(); i++ ) { final Selectable selectable = selectables.get(i); if ( selectable.isFormula() ) { - final String template = selectable.getTemplate( - dialect, - typeConfiguration, - functionRegistry - ); + final String template = selectable.getTemplate( dialect, typeConfiguration ); forms[i] = template; final String formulaAlias = selectable.getAlias( dialect ); if ( prop.isSelectable() && !formulaAliases.contains( formulaAlias ) ) { @@ -725,8 +714,7 @@ public AbstractEntityPersister( readers[i] = column.getReadExpr( dialect ); readerTemplates[i] = column.getTemplate( dialect, - typeConfiguration, - functionRegistry + typeConfiguration ); if ( thisClassProperties.contains( prop ) ? persistentClass.hasSubclasses() @@ -5413,8 +5401,7 @@ protected AttributeMapping generateNonIdAttributeMapping( customReadExpr = selectable.getTemplate( creationContext.getDialect(), - creationContext.getTypeConfiguration(), - creationContext.getFunctionRegistry() + creationContext.getTypeConfiguration() ); customWriteExpr = selectable.getWriteExpr( (JdbcMapping) attrType, creationContext.getDialect() ); Column column = value.getColumns().get( 0 ); diff --git a/hibernate-core/src/main/java/org/hibernate/persister/entity/JoinedSubclassEntityPersister.java b/hibernate-core/src/main/java/org/hibernate/persister/entity/JoinedSubclassEntityPersister.java index 9c88ba8f55e4..04ef387c7450 100644 --- a/hibernate-core/src/main/java/org/hibernate/persister/entity/JoinedSubclassEntityPersister.java +++ b/hibernate-core/src/main/java/org/hibernate/persister/entity/JoinedSubclassEntityPersister.java @@ -46,7 +46,6 @@ import org.hibernate.metamodel.mapping.internal.MappingModelCreationProcess; import org.hibernate.metamodel.spi.MappingMetamodelImplementor; import org.hibernate.metamodel.spi.RuntimeModelCreationContext; -import org.hibernate.query.sqm.function.SqmFunctionRegistry; import org.hibernate.sql.ast.SqlAstJoinType; import org.hibernate.sql.ast.tree.from.NamedTableReference; import org.hibernate.sql.ast.tree.from.TableGroup; @@ -164,7 +163,6 @@ public JoinedSubclassEntityPersister( super( persistentClass, cacheAccessStrategy, naturalIdRegionAccessStrategy, creationContext ); final Dialect dialect = creationContext.getDialect(); - final SqmFunctionRegistry functionRegistry = creationContext.getFunctionRegistry(); final TypeConfiguration typeConfiguration = creationContext.getTypeConfiguration(); final BasicTypeRegistry basicTypeRegistry = typeConfiguration.getBasicTypeRegistry(); @@ -237,7 +235,7 @@ public JoinedSubclassEntityPersister( final Column column = columns.get(k); keyCols[k] = column.getQuotedName( dialect ); keyColReaders[k] = column.getReadExpr( dialect ); - keyColReaderTemplates[k] = column.getTemplate( dialect, typeConfiguration, functionRegistry ); + keyColReaderTemplates[k] = column.getTemplate( dialect, typeConfiguration ); } keyColumns.add( keyCols ); keyColumnReaders.add( keyColReaders ); @@ -273,7 +271,7 @@ public JoinedSubclassEntityPersister( final Column column = columns.get(k); keyCols[k] = column.getQuotedName( dialect ); keyColReaders[k] = column.getReadExpr( dialect ); - keyColReaderTemplates[k] = column.getTemplate( dialect, typeConfiguration, functionRegistry ); + keyColReaderTemplates[k] = column.getTemplate( dialect, typeConfiguration ); } keyColumns.add( keyCols ); keyColumnReaders.add( keyColReaders ); diff --git a/hibernate-core/src/main/java/org/hibernate/persister/entity/SingleTableEntityPersister.java b/hibernate-core/src/main/java/org/hibernate/persister/entity/SingleTableEntityPersister.java index 85202d286673..6aab577d933e 100644 --- a/hibernate-core/src/main/java/org/hibernate/persister/entity/SingleTableEntityPersister.java +++ b/hibernate-core/src/main/java/org/hibernate/persister/entity/SingleTableEntityPersister.java @@ -32,7 +32,6 @@ import org.hibernate.metamodel.mapping.TableDetails; import org.hibernate.metamodel.spi.MappingMetamodelImplementor; import org.hibernate.metamodel.spi.RuntimeModelCreationContext; -import org.hibernate.query.sqm.function.SqmFunctionRegistry; import org.hibernate.sql.ast.tree.from.NamedTableReference; import org.hibernate.sql.ast.tree.from.TableGroup; import org.hibernate.sql.model.ast.builder.MutationGroupBuilder; @@ -117,7 +116,6 @@ public SingleTableEntityPersister( super( persistentClass, cacheAccessStrategy, naturalIdRegionAccessStrategy, creationContext ); final Dialect dialect = creationContext.getDialect(); - final SqmFunctionRegistry functionRegistry = creationContext.getFunctionRegistry(); final TypeConfiguration typeConfiguration = creationContext.getTypeConfiguration(); // CLASS + TABLE @@ -253,7 +251,7 @@ public SingleTableEntityPersister( discriminatorInsertable = isDiscriminatorInsertable( persistentClass ); if ( discriminator.hasFormula() ) { final Formula formula = (Formula) selectable; - discriminatorFormulaTemplate = formula.getTemplate( dialect, typeConfiguration, functionRegistry ); + discriminatorFormulaTemplate = formula.getTemplate( dialect, typeConfiguration ); discriminatorColumnName = null; discriminatorColumnReaders = null; discriminatorColumnReaderTemplate = null; @@ -263,7 +261,7 @@ public SingleTableEntityPersister( final Column column = (Column) selectable; discriminatorColumnName = column.getQuotedName( dialect ); discriminatorColumnReaders = column.getReadExpr( dialect ); - discriminatorColumnReaderTemplate = column.getTemplate( dialect, typeConfiguration, functionRegistry ); + discriminatorColumnReaderTemplate = column.getTemplate( dialect, typeConfiguration ); discriminatorAlias = column.getAlias( dialect, persistentClass.getRootTable() ); discriminatorFormulaTemplate = null; }