Skip to content

Commit af1061a

Browse files
committed
HHH-8276 - Integrate LoadPlans into UniqueEntityLoader (PoC)
1 parent 18079f3 commit af1061a

File tree

115 files changed

+8156
-1309
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

115 files changed

+8156
-1309
lines changed

hibernate-core/src/main/java/org/hibernate/loader/entity/plan/AbstractLoadPlanBasedEntityLoader.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@
3030
import org.hibernate.internal.CoreLogging;
3131
import org.hibernate.internal.CoreMessageLogger;
3232
import org.hibernate.loader.entity.UniqueEntityLoader;
33-
import org.hibernate.loader.plan.exec.query.spi.NamedParameterContext;
34-
import org.hibernate.loader.plan.exec.query.spi.QueryBuildingParameters;
35-
import org.hibernate.loader.plan.exec.spi.EntityLoadQueryDetails;
36-
import org.hibernate.loader.plan.internal.SingleRootReturnLoadPlanBuilderStrategy;
37-
import org.hibernate.loader.plan.spi.LoadPlan;
38-
import org.hibernate.loader.plan.spi.build.MetadataDrivenLoadPlanBuilder;
33+
import org.hibernate.loader.plan2.build.internal.FetchStyleLoadPlanBuildingAssociationVisitationStrategy;
34+
import org.hibernate.loader.plan2.build.spi.MetamodelDrivenLoadPlanBuilder;
35+
import org.hibernate.loader.plan2.exec.query.spi.NamedParameterContext;
36+
import org.hibernate.loader.plan2.exec.query.spi.QueryBuildingParameters;
37+
import org.hibernate.loader.plan2.exec.spi.EntityLoadQueryDetails;
38+
import org.hibernate.loader.plan2.spi.LoadPlan;
3939
import org.hibernate.loader.spi.AfterLoadAction;
4040
import org.hibernate.persister.entity.EntityPersister;
4141
import org.hibernate.persister.entity.OuterJoinLoadable;
@@ -72,12 +72,12 @@ public AbstractLoadPlanBasedEntityLoader(
7272
this.uniqueKeyType = uniqueKeyType;
7373
this.entityName = entityPersister.getEntityName();
7474

75-
final SingleRootReturnLoadPlanBuilderStrategy strategy = new SingleRootReturnLoadPlanBuilderStrategy(
75+
final FetchStyleLoadPlanBuildingAssociationVisitationStrategy strategy = new FetchStyleLoadPlanBuildingAssociationVisitationStrategy(
7676
factory,
7777
buildingParameters.getQueryInfluencers()
7878
);
7979

80-
this.plan = MetadataDrivenLoadPlanBuilder.buildRootEntityLoadPlan( strategy, entityPersister );
80+
this.plan = MetamodelDrivenLoadPlanBuilder.buildRootEntityLoadPlan( strategy, entityPersister );
8181
this.staticLoadQuery = EntityLoadQueryDetails.makeForBatching(
8282
plan,
8383
uniqueKeyColumnNames,

hibernate-core/src/main/java/org/hibernate/loader/entity/plan/EntityLoader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
import org.hibernate.engine.spi.LoadQueryInfluencers;
3333
import org.hibernate.engine.spi.SessionFactoryImplementor;
3434
import org.hibernate.internal.CoreLogging;
35-
import org.hibernate.loader.plan.exec.query.spi.QueryBuildingParameters;
35+
import org.hibernate.loader.plan2.exec.query.spi.QueryBuildingParameters;
3636
import org.hibernate.persister.entity.OuterJoinLoadable;
3737
import org.hibernate.type.Type;
3838

hibernate-core/src/main/java/org/hibernate/loader/plan/exec/internal/AliasResolutionContextImpl.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,19 @@
2323
*/
2424
package org.hibernate.loader.plan.exec.internal;
2525

26+
import java.io.ByteArrayOutputStream;
27+
import java.io.PrintStream;
28+
import java.io.PrintWriter;
2629
import java.util.Collections;
2730
import java.util.HashMap;
2831
import java.util.Map;
2932

33+
import org.jboss.logging.Logger;
34+
3035
import org.hibernate.cfg.NotYetImplementedException;
3136
import org.hibernate.engine.spi.SessionFactoryImplementor;
3237
import org.hibernate.hql.internal.NameGenerator;
38+
import org.hibernate.internal.CoreLogging;
3339
import org.hibernate.internal.util.StringHelper;
3440
import org.hibernate.loader.CollectionAliases;
3541
import org.hibernate.loader.DefaultEntityAliases;
@@ -50,6 +56,9 @@
5056
import org.hibernate.loader.plan.spi.Return;
5157
import org.hibernate.loader.plan.spi.ScalarReturn;
5258
import org.hibernate.loader.plan.spi.SourceQualifiable;
59+
import org.hibernate.loader.plan2.build.spi.TreePrinterHelper;
60+
import org.hibernate.loader.plan2.spi.LoadPlan;
61+
import org.hibernate.loader.plan2.spi.QuerySpace;
5362
import org.hibernate.loader.spi.JoinableAssociation;
5463
import org.hibernate.persister.collection.CollectionPersister;
5564
import org.hibernate.persister.entity.EntityPersister;
@@ -64,6 +73,8 @@
6473
* @author Steve Ebersole
6574
*/
6675
public class AliasResolutionContextImpl implements AliasResolutionContext {
76+
private static final Logger log = CoreLogging.logger( AliasResolutionContextImpl.class );
77+
6778
private final SessionFactoryImplementor sessionFactory;
6879

6980
private final Map<Return,String> sourceAliasByReturnMap;

hibernate-core/src/main/java/org/hibernate/loader/plan/exec/process/internal/EntityIdentifierReaderImpl.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,6 @@ public void hydrate(ResultSet resultSet, ResultSetProcessingContext context) thr
107107
// broadcast the fact that a hydrated identifier value just became associated with
108108
// this entity reference
109109
processingState.registerIdentifierHydratedForm( identifierHydratedForm );
110-
// hydrateIdentifierFetchIdentifiers( resultSet, context, identifierHydratedForm );
111110
for ( EntityReferenceReader reader : identifierFetchReaders ) {
112111
reader.hydrateIdentifier( resultSet, context );
113112
}

hibernate-core/src/main/java/org/hibernate/loader/plan/spi/build/MetadataDrivenLoadPlanBuilder.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,15 @@
2626
import org.hibernate.loader.plan.spi.LoadPlan;
2727
import org.hibernate.persister.collection.CollectionPersister;
2828
import org.hibernate.persister.entity.EntityPersister;
29-
import org.hibernate.persister.walking.spi.MetadataDrivenModelGraphVisitor;
29+
import org.hibernate.persister.walking.spi.MetamodelGraphWalker;
3030

3131
/**
32-
* A metadata-driven builder of LoadPlans. Coordinates between the {@link MetadataDrivenModelGraphVisitor} and
32+
* A metadata-driven builder of LoadPlans. Coordinates between the {@link org.hibernate.persister.walking.spi.MetamodelGraphWalker} and
3333
* {@link LoadPlanBuilderStrategy}.
3434
*
3535
* @author Steve Ebersole
3636
*
37-
* @see MetadataDrivenModelGraphVisitor
37+
* @see org.hibernate.persister.walking.spi.MetamodelGraphWalker
3838
*/
3939
public class MetadataDrivenLoadPlanBuilder {
4040
/**
@@ -48,7 +48,7 @@ public class MetadataDrivenLoadPlanBuilder {
4848
* @return The built load plan.
4949
*/
5050
public static LoadPlan buildRootEntityLoadPlan(LoadPlanBuilderStrategy strategy, EntityPersister persister) {
51-
MetadataDrivenModelGraphVisitor.visitEntity( strategy, persister );
51+
MetamodelGraphWalker.visitEntity( strategy, persister );
5252
return strategy.buildLoadPlan();
5353
}
5454

@@ -61,7 +61,7 @@ public static LoadPlan buildRootEntityLoadPlan(LoadPlanBuilderStrategy strategy,
6161
* @return The built load plan.
6262
*/
6363
public static LoadPlan buildRootCollectionLoadPlan(LoadPlanBuilderStrategy strategy, CollectionPersister persister) {
64-
MetadataDrivenModelGraphVisitor.visitCollection( strategy, persister );
64+
MetamodelGraphWalker.visitCollection( strategy, persister );
6565
return strategy.buildLoadPlan();
6666
}
6767
}

hibernate-core/src/main/java/org/hibernate/loader/plan2/build/internal/CascadeLoadPlanBuilderStrategy.java renamed to hibernate-core/src/main/java/org/hibernate/loader/plan2/build/internal/CascadeStyleLoadPlanBuildingAssociationVisitationStrategy.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,14 @@
3737
*
3838
* @author Steve Ebersole
3939
*/
40-
public class CascadeLoadPlanBuilderStrategy extends StandardFetchBasedLoadPlanBuilderStrategy {
40+
public class CascadeStyleLoadPlanBuildingAssociationVisitationStrategy
41+
extends FetchStyleLoadPlanBuildingAssociationVisitationStrategy {
4142
private static final FetchStrategy EAGER = new FetchStrategy( FetchTiming.IMMEDIATE, FetchStyle.JOIN );
4243
private static final FetchStrategy DELAYED = new FetchStrategy( FetchTiming.DELAYED, FetchStyle.SELECT );
4344

4445
private final CascadingAction cascadeActionToMatch;
4546

46-
public CascadeLoadPlanBuilderStrategy(
47+
public CascadeStyleLoadPlanBuildingAssociationVisitationStrategy(
4748
CascadingAction cascadeActionToMatch,
4849
SessionFactoryImplementor sessionFactory,
4950
LoadQueryInfluencers loadQueryInfluencers) {

hibernate-core/src/main/java/org/hibernate/loader/plan2/build/internal/CollectionQuerySpaceImpl.java

Lines changed: 0 additions & 252 deletions
This file was deleted.

0 commit comments

Comments
 (0)