Skip to content

Commit 715ea1d

Browse files
committed
SQL Templates no longer use the SqmFunctionRegistry so we can simplify
1 parent 9ce618e commit 715ea1d

14 files changed

+39
-82
lines changed

hibernate-core/src/main/java/org/hibernate/boot/model/internal/AggregateComponentSecondPass.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -151,11 +151,7 @@ public void doSecondPass(Map<String, PersistentClass> persistentClasses) throws
151151
if ( subColumn.getCustomReadExpression() == null ) {
152152
if ( subColumn.isFormula() ) {
153153
customReadExpression = aggregateSupport.aggregateComponentCustomReadExpression(
154-
subColumn.getTemplate(
155-
dialect,
156-
typeConfiguration,
157-
null
158-
),
154+
subColumn.getTemplate( dialect, typeConfiguration ),
159155
Template.TEMPLATE + ".",
160156
aggregateReadTemplate,
161157
"",

hibernate-core/src/main/java/org/hibernate/internal/SessionFactoryImpl.java

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -288,16 +288,8 @@ public SessionFactoryImpl(
288288
runtimeMetamodels = runtimeMetamodelsImpl;
289289

290290
// we build this before creating the runtime metamodels
291-
// because the persisters need the SqmFunctionRegistry
292-
// to translate SQL formulas. But, if we fix Dialect
293-
// as I proposed, so that it can contribute functions
294-
// to the SqmFunctionRegistry before the QueryEngine is
295-
// created, then we can split creation of QueryEngine
296-
// and SqmFunctionRegistry, instantiating just the
297-
// registry here, and doing the engine later, and we
298-
// can thus untie this nasty little knot. Alternatively,
299-
// perhaps it's not really appropriate that they use the
300-
// SqmFunctionRegistry for that purpose at all?
291+
// because the SqlAstTranslators (unnecessarily, perhaps)
292+
// use the SqmFunctionRegistry when rendering SQL for Loaders
301293
queryEngine = new QueryEngineImpl( bootMetamodel, options, runtimeMetamodels, serviceRegistry, settings, name );
302294
final Map<String, FetchProfile> fetchProfiles = new HashMap<>();
303295
sqlTranslationEngine = new SqlTranslationEngineImpl( this, typeConfiguration, fetchProfiles );

hibernate-core/src/main/java/org/hibernate/mapping/Column.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import org.hibernate.engine.jdbc.Size;
2222
import org.hibernate.loader.internal.AliasConstantsHelper;
2323
import org.hibernate.metamodel.mapping.JdbcMapping;
24-
import org.hibernate.query.sqm.function.SqmFunctionRegistry;
2524
import org.hibernate.sql.Template;
2625
import org.hibernate.tool.schema.extract.spi.ColumnTypeInformation;
2726
import org.hibernate.type.BasicType;
@@ -622,7 +621,7 @@ public boolean hasCheckConstraint() {
622621
}
623622

624623
@Override
625-
public String getTemplate(Dialect dialect, TypeConfiguration typeConfiguration, SqmFunctionRegistry registry) {
624+
public String getTemplate(Dialect dialect, TypeConfiguration typeConfiguration) {
626625
return safeInterning(
627626
hasCustomRead()
628627
// see note in renderTransformerReadFragment wrt access to SessionFactory

hibernate-core/src/main/java/org/hibernate/mapping/Formula.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
import org.hibernate.dialect.Dialect;
1111
import org.hibernate.loader.internal.AliasConstantsHelper;
12-
import org.hibernate.query.sqm.function.SqmFunctionRegistry;
1312
import org.hibernate.type.spi.TypeConfiguration;
1413

1514
import static org.hibernate.internal.util.StringHelper.replace;
@@ -40,7 +39,7 @@ public Formula(String formula) {
4039
}
4140

4241
@Override
43-
public String getTemplate(Dialect dialect, TypeConfiguration typeConfiguration, SqmFunctionRegistry registry) {
42+
public String getTemplate(Dialect dialect, TypeConfiguration typeConfiguration) {
4443
final String template = renderWhereStringTemplate( formula, dialect, typeConfiguration );
4544
return safeInterning( replace( template, "{alias}", TEMPLATE ) );
4645
}

hibernate-core/src/main/java/org/hibernate/mapping/IdentifierCollection.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,10 @@ public IdentifierCollection(MetadataBuildingContext buildingContext, PersistentC
2626
super( buildingContext, owner );
2727
}
2828

29-
public IdentifierCollection(Supplier<ManagedBean<? extends UserCollectionType>> customTypeBeanResolver, PersistentClass owner, MetadataBuildingContext buildingContext) {
29+
public IdentifierCollection(
30+
Supplier<ManagedBean<? extends UserCollectionType>> customTypeBeanResolver,
31+
PersistentClass owner,
32+
MetadataBuildingContext buildingContext) {
3033
super( customTypeBeanResolver, owner, buildingContext );
3134
}
3235

@@ -38,22 +41,24 @@ protected IdentifierCollection(IdentifierCollection original) {
3841
public KeyValue getIdentifier() {
3942
return identifier;
4043
}
44+
4145
public void setIdentifier(KeyValue identifier) {
4246
this.identifier = identifier;
4347
}
48+
4449
public final boolean isIdentified() {
4550
return true;
4651
}
4752

4853
@Override
4954
public boolean isSame(Collection other) {
5055
return other instanceof IdentifierCollection
51-
&& isSame( (IdentifierCollection) other );
56+
&& isSame( (IdentifierCollection) other );
5257
}
5358

5459
public boolean isSame(IdentifierCollection other) {
5560
return super.isSame( other )
56-
&& isSame( identifier, other.identifier );
61+
&& isSame( identifier, other.identifier );
5762
}
5863

5964
void createPrimaryKey() {

hibernate-core/src/main/java/org/hibernate/mapping/PersistentClass.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import org.hibernate.jdbc.Expectation;
3030
import org.hibernate.jpa.event.spi.CallbackDefinition;
3131
import org.hibernate.metamodel.spi.RuntimeModelCreationContext;
32-
import org.hibernate.query.sqm.function.SqmFunctionRegistry;
3332
import org.hibernate.service.ServiceRegistry;
3433
import org.hibernate.sql.Alias;
3534
import org.hibernate.type.CollectionType;
@@ -1019,7 +1018,6 @@ public void prepareForMappingModel(RuntimeModelCreationContext context) {
10191018
// in SQL formulas
10201019
final Dialect dialect = context.getDialect();
10211020
final TypeConfiguration types = context.getTypeConfiguration();
1022-
final SqmFunctionRegistry functions = context.getFunctionRegistry();
10231021

10241022
// now, move @Formulas to the correct AttributeContainers
10251023
//TODO: skip this step for hbm.xml
@@ -1028,7 +1026,7 @@ public void prepareForMappingModel(RuntimeModelCreationContext context) {
10281026
if ( selectable.isFormula() && properties.contains( property ) ) {
10291027
final Formula formula = (Formula) selectable;
10301028
final AttributeContainer container =
1031-
container( collectColumnNames( formula.getTemplate( dialect, types, functions ) ) );
1029+
container( collectColumnNames( formula.getTemplate( dialect, types ) ) );
10321030
if ( !container.contains( property ) ) {
10331031
properties.remove( property );
10341032
container.addProperty( property );

hibernate-core/src/main/java/org/hibernate/mapping/Selectable.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import org.hibernate.Incubating;
88
import org.hibernate.dialect.Dialect;
99
import org.hibernate.metamodel.mapping.JdbcMapping;
10-
import org.hibernate.query.sqm.function.SqmFunctionRegistry;
1110
import org.hibernate.type.spi.TypeConfiguration;
1211

1312
/**
@@ -61,7 +60,7 @@ public sealed interface Selectable permits Column, Formula {
6160
@Deprecated(since = "6.0")
6261
String getAlias(Dialect dialect, Table table);
6362

64-
String getTemplate(Dialect dialect, TypeConfiguration typeConfiguration, SqmFunctionRegistry functionRegistry);
63+
String getTemplate(Dialect dialect, TypeConfiguration typeConfiguration);
6564

6665
@Incubating
6766
default String getWriteExpr() {

hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/AbstractEmbeddableMapping.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -309,8 +309,7 @@ protected boolean finishInitialization(
309309
if ( selectable.isFormula() ) {
310310
columnExpression = selectable.getTemplate(
311311
dialect,
312-
creationProcess.getCreationContext().getTypeConfiguration(),
313-
creationProcess.getSqmFunctionRegistry()
312+
creationProcess.getCreationContext().getTypeConfiguration()
314313
);
315314
}
316315
else {

hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/EmbeddableMappingTypeImpl.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -453,8 +453,7 @@ private boolean finishInitialization(
453453
if ( selectable.isFormula() ) {
454454
columnExpression = selectable.getTemplate(
455455
dialect,
456-
creationProcess.getCreationContext().getTypeConfiguration(),
457-
creationProcess.getSqmFunctionRegistry()
456+
creationProcess.getCreationContext().getTypeConfiguration()
458457
);
459458
}
460459
else {
@@ -726,8 +725,7 @@ private EmbeddableDiscriminatorMapping generateDiscriminatorMapping(
726725
final Formula formula = (Formula) selectable;
727726
discriminatorColumnExpression = name = formula.getTemplate(
728727
creationContext.getDialect(),
729-
creationContext.getTypeConfiguration(),
730-
creationContext.getFunctionRegistry()
728+
creationContext.getTypeConfiguration()
731729
);
732730
columnDefinition = null;
733731
length = null;

hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/SelectableMappingImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ public static SelectableMapping from(
172172
final boolean isLob;
173173
final boolean isNullable;
174174
if ( selectable.isFormula() ) {
175-
columnExpression = selectable.getTemplate( dialect, typeConfiguration, sqmFunctionRegistry );
175+
columnExpression = selectable.getTemplate( dialect, typeConfiguration );
176176
columnDefinition = null;
177177
length = null;
178178
precision = null;

0 commit comments

Comments
 (0)