class org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader extends org.hibernate.loader.collection.CollectionLoader
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader
super_class: org.hibernate.loader.collection.CollectionLoader
{
private final java.lang.String sqlTemplate;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String alias;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(org.hibernate.persister.collection.QueryableCollection, org.hibernate.engine.spi.SessionFactoryImplementor, org.hibernate.engine.spi.LoadQueryInfluencers);
descriptor: (Lorg/hibernate/persister/collection/QueryableCollection;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
invokespecial org.hibernate.loader.collection.CollectionLoader.<init>:(Lorg/hibernate/persister/collection/QueryableCollection;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)V
1: aload 0
aload 1
aload 2
aload 3
invokevirtual org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader.buildJoinWalker:(Lorg/hibernate/persister/collection/QueryableCollection;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)Lorg/hibernate/loader/JoinWalker;
astore 4
start local 4 2: aload 0
aload 4
invokevirtual org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader.initFromWalker:(Lorg/hibernate/loader/JoinWalker;)V
3: aload 0
aload 4
invokevirtual org.hibernate.loader.JoinWalker.getSQLString:()Ljava/lang/String;
putfield org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader.sqlTemplate:Ljava/lang/String;
4: aload 0
aload 1
invokeinterface org.hibernate.persister.collection.QueryableCollection.getRole:()Ljava/lang/String;
iconst_0
invokestatic org.hibernate.internal.util.StringHelper.generateAlias:(Ljava/lang/String;I)Ljava/lang/String;
putfield org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader.alias:Ljava/lang/String;
5: aload 0
invokevirtual org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader.postInstantiate:()V
6: getstatic org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader.LOG:Lorg/hibernate/internal/CoreMessageLogger;
invokeinterface org.hibernate.internal.CoreMessageLogger.isDebugEnabled:()Z
ifeq 12
7: getstatic org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader.LOG:Lorg/hibernate/internal/CoreMessageLogger;
8: ldc "SQL-template for dynamic collection [%s] batch-fetching : %s"
9: aload 1
invokeinterface org.hibernate.persister.collection.QueryableCollection.getRole:()Ljava/lang/String;
10: aload 0
getfield org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader.sqlTemplate:Ljava/lang/String;
11: invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
12: StackMap locals: org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader org.hibernate.persister.collection.QueryableCollection org.hibernate.engine.spi.SessionFactoryImplementor org.hibernate.engine.spi.LoadQueryInfluencers org.hibernate.loader.JoinWalker
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/hibernate/loader/collection/DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader;
0 13 1 collectionPersister Lorg/hibernate/persister/collection/QueryableCollection;
0 13 2 factory Lorg/hibernate/engine/spi/SessionFactoryImplementor;
0 13 3 influencers Lorg/hibernate/engine/spi/LoadQueryInfluencers;
2 13 4 walker Lorg/hibernate/loader/JoinWalker;
MethodParameters:
Name Flags
collectionPersister
factory
influencers
private org.hibernate.loader.JoinWalker buildJoinWalker(org.hibernate.persister.collection.QueryableCollection, org.hibernate.engine.spi.SessionFactoryImplementor, org.hibernate.engine.spi.LoadQueryInfluencers);
descriptor: (Lorg/hibernate/persister/collection/QueryableCollection;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)Lorg/hibernate/loader/JoinWalker;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokeinterface org.hibernate.persister.collection.QueryableCollection.isOneToMany:()Z
ifeq 2
1: new org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader$1
dup
aload 0
aload 1
iconst_m1
aconst_null
aload 2
aload 3
invokespecial org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader$1.<init>:(Lorg/hibernate/loader/collection/DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader;Lorg/hibernate/persister/collection/QueryableCollection;ILjava/lang/String;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)V
areturn
2: StackMap locals:
StackMap stack:
new org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader$2
dup
aload 0
aload 1
iconst_m1
aconst_null
aload 2
aload 3
invokespecial org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader$2.<init>:(Lorg/hibernate/loader/collection/DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader;Lorg/hibernate/persister/collection/QueryableCollection;ILjava/lang/String;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/hibernate/loader/collection/DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader;
0 3 1 collectionPersister Lorg/hibernate/persister/collection/QueryableCollection;
0 3 2 factory Lorg/hibernate/engine/spi/SessionFactoryImplementor;
0 3 3 influencers Lorg/hibernate/engine/spi/LoadQueryInfluencers;
MethodParameters:
Name Flags
collectionPersister
factory
influencers
public final void doBatchedCollectionLoad(org.hibernate.engine.spi.SessionImplementor, java.io.Serializable[], org.hibernate.type.Type);
descriptor: (Lorg/hibernate/engine/spi/SessionImplementor;[Ljava/io/Serializable;Lorg/hibernate/type/Type;)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=6, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader.LOG:Lorg/hibernate/internal/CoreMessageLogger;
invokeinterface org.hibernate.internal.CoreMessageLogger.isDebugEnabled:()Z
ifeq 4
1: getstatic org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader.LOG:Lorg/hibernate/internal/CoreMessageLogger;
ldc "Batch loading collection: %s"
2: aload 0
invokevirtual org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader.getCollectionPersisters:()[Lorg/hibernate/persister/collection/CollectionPersister;
iconst_0
aaload
aload 2
aload 0
invokevirtual org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
invokestatic org.hibernate.pretty.MessageHelper.collectionInfoString:(Lorg/hibernate/persister/collection/CollectionPersister;[Ljava/io/Serializable;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
3: invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
4: StackMap locals:
StackMap stack:
aload 2
arraylength
anewarray org.hibernate.type.Type
astore 4
start local 4 5: aload 4
aload 3
invokestatic java.util.Arrays.fill:([Ljava/lang/Object;Ljava/lang/Object;)V
6: new org.hibernate.engine.spi.QueryParameters
dup
aload 4
aload 2
aload 2
invokespecial org.hibernate.engine.spi.QueryParameters.<init>:([Lorg/hibernate/type/Type;[Ljava/lang/Object;[Ljava/io/Serializable;)V
astore 5
start local 5 7: aload 0
getfield org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader.sqlTemplate:Ljava/lang/String;
8: aload 2
9: aload 0
getfield org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader.alias:Ljava/lang/String;
10: aload 0
invokevirtual org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader.collectionPersister:()Lorg/hibernate/persister/collection/QueryableCollection;
invokeinterface org.hibernate.persister.collection.QueryableCollection.getKeyColumnNames:()[Ljava/lang/String;
11: aload 0
invokevirtual org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
12: invokestatic org.hibernate.internal.util.StringHelper.expandBatchIdPlaceholder:(Ljava/lang/String;[Ljava/io/Serializable;Ljava/lang/String;[Ljava/lang/String;Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
astore 6
start local 6 13: aload 1
invokeinterface org.hibernate.engine.spi.SessionImplementor.getPersistenceContext:()Lorg/hibernate/engine/spi/PersistenceContext;
astore 7
start local 7 14: aload 7
invokeinterface org.hibernate.engine.spi.PersistenceContext.isDefaultReadOnly:()Z
istore 8
start local 8 15: aload 5
invokevirtual org.hibernate.engine.spi.QueryParameters.isReadOnlyInitialized:()Z
ifeq 18
16: aload 7
aload 5
invokevirtual org.hibernate.engine.spi.QueryParameters.isReadOnly:()Z
invokeinterface org.hibernate.engine.spi.PersistenceContext.setDefaultReadOnly:(Z)V
17: goto 19
18: StackMap locals: org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader org.hibernate.engine.spi.SessionImplementor java.io.Serializable[] org.hibernate.type.Type org.hibernate.type.Type[] org.hibernate.engine.spi.QueryParameters java.lang.String org.hibernate.engine.spi.PersistenceContext int
StackMap stack:
aload 5
aload 7
invokeinterface org.hibernate.engine.spi.PersistenceContext.isDefaultReadOnly:()Z
invokevirtual org.hibernate.engine.spi.QueryParameters.setReadOnly:(Z)V
19: StackMap locals:
StackMap stack:
aload 7
invokeinterface org.hibernate.engine.spi.PersistenceContext.beforeLoad:()V
20: aload 0
aload 6
aload 5
aload 1
invokevirtual org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader.doTheLoad:(Ljava/lang/String;Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SessionImplementor;)V
21: goto 25
22: StackMap locals:
StackMap stack: java.lang.Throwable
astore 9
23: aload 7
invokeinterface org.hibernate.engine.spi.PersistenceContext.afterLoad:()V
24: aload 9
athrow
25: StackMap locals:
StackMap stack:
aload 7
invokeinterface org.hibernate.engine.spi.PersistenceContext.afterLoad:()V
26: aload 7
invokeinterface org.hibernate.engine.spi.PersistenceContext.initializeNonLazyCollections:()V
27: goto 31
28: StackMap locals:
StackMap stack: java.lang.Throwable
astore 10
29: aload 7
iload 8
invokeinterface org.hibernate.engine.spi.PersistenceContext.setDefaultReadOnly:(Z)V
30: aload 10
athrow
31: StackMap locals:
StackMap stack:
aload 7
iload 8
invokeinterface org.hibernate.engine.spi.PersistenceContext.setDefaultReadOnly:(Z)V
end local 8 end local 7 32: goto 41
33: StackMap locals: org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader org.hibernate.engine.spi.SessionImplementor java.io.Serializable[] org.hibernate.type.Type org.hibernate.type.Type[] org.hibernate.engine.spi.QueryParameters java.lang.String
StackMap stack: java.sql.SQLException
astore 7
start local 7 34: aload 0
invokevirtual org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSQLExceptionHelper:()Lorg/hibernate/engine/jdbc/spi/SqlExceptionHelper;
35: aload 7
36: new java.lang.StringBuilder
dup
ldc "could not initialize a collection batch: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
37: aload 0
invokevirtual org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader.collectionPersister:()Lorg/hibernate/persister/collection/QueryableCollection;
aload 2
aload 0
invokevirtual org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
invokestatic org.hibernate.pretty.MessageHelper.collectionInfoString:(Lorg/hibernate/persister/collection/CollectionPersister;[Ljava/io/Serializable;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
38: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
39: aload 6
40: invokevirtual org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert:(Ljava/sql/SQLException;Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/JDBCException;
athrow
end local 7 41: StackMap locals:
StackMap stack:
getstatic org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader.LOG:Lorg/hibernate/internal/CoreMessageLogger;
ldc "Done batch load"
invokeinterface org.hibernate.internal.CoreMessageLogger.debug:(Ljava/lang/Object;)V
42: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lorg/hibernate/loader/collection/DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader;
0 43 1 session Lorg/hibernate/engine/spi/SessionImplementor;
0 43 2 ids [Ljava/io/Serializable;
0 43 3 type Lorg/hibernate/type/Type;
5 43 4 idTypes [Lorg/hibernate/type/Type;
7 43 5 queryParameters Lorg/hibernate/engine/spi/QueryParameters;
13 43 6 sql Ljava/lang/String;
14 32 7 persistenceContext Lorg/hibernate/engine/spi/PersistenceContext;
15 32 8 defaultReadOnlyOrig Z
34 41 7 e Ljava/sql/SQLException;
Exception table:
from to target type
20 22 22 any
20 28 28 any
13 32 33 Class java.sql.SQLException
Exceptions:
throws org.hibernate.HibernateException
MethodParameters:
Name Flags
session final
ids final
type final
private void doTheLoad(java.lang.String, org.hibernate.engine.spi.QueryParameters, org.hibernate.engine.spi.SessionImplementor);
descriptor: (Ljava/lang/String;Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SessionImplementor;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokevirtual org.hibernate.engine.spi.QueryParameters.getRowSelection:()Lorg/hibernate/engine/spi/RowSelection;
astore 4
start local 4 1: aload 4
invokestatic org.hibernate.dialect.pagination.LimitHelper.hasMaxRows:(Lorg/hibernate/engine/spi/RowSelection;)Z
ifeq 3
2: aload 4
invokevirtual org.hibernate.engine.spi.RowSelection.getMaxRows:()Ljava/lang/Integer;
invokevirtual java.lang.Integer.intValue:()I
goto 4
3: StackMap locals: org.hibernate.engine.spi.RowSelection
StackMap stack:
ldc 2147483647
4: StackMap locals:
StackMap stack: int
istore 5
start local 5 5: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
astore 6
start local 6 6: aload 0
aload 1
aload 2
iconst_0
aload 6
aload 3
invokevirtual org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader.executeQueryStatement:(Ljava/lang/String;Lorg/hibernate/engine/spi/QueryParameters;ZLjava/util/List;Lorg/hibernate/engine/spi/SessionImplementor;)Lorg/hibernate/loader/Loader$SqlStatementWrapper;
astore 7
start local 7 7: aload 7
invokevirtual org.hibernate.loader.Loader$SqlStatementWrapper.getResultSet:()Ljava/sql/ResultSet;
astore 8
start local 8 8: aload 7
invokevirtual org.hibernate.loader.Loader$SqlStatementWrapper.getStatement:()Ljava/sql/Statement;
astore 9
start local 9 9: aload 0
aload 8
aload 2
aload 3
iconst_1
aconst_null
iload 5
aload 6
invokevirtual org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader.processResultSet:(Ljava/sql/ResultSet;Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SessionImplementor;ZLorg/hibernate/transform/ResultTransformer;ILjava/util/List;)Ljava/util/List;
pop
10: goto 14
11: StackMap locals: org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader java.lang.String org.hibernate.engine.spi.QueryParameters org.hibernate.engine.spi.SessionImplementor org.hibernate.engine.spi.RowSelection int java.util.List org.hibernate.loader.Loader$SqlStatementWrapper java.sql.ResultSet java.sql.Statement
StackMap stack: java.lang.Throwable
astore 10
12: aload 3
invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
aload 9
invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
13: aload 10
athrow
14: StackMap locals:
StackMap stack:
aload 3
invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
aload 9
invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
15: return
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/hibernate/loader/collection/DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader;
0 16 1 sql Ljava/lang/String;
0 16 2 queryParameters Lorg/hibernate/engine/spi/QueryParameters;
0 16 3 session Lorg/hibernate/engine/spi/SessionImplementor;
1 16 4 selection Lorg/hibernate/engine/spi/RowSelection;
5 16 5 maxRows I
6 16 6 afterLoadActions Ljava/util/List<Lorg/hibernate/loader/spi/AfterLoadAction;>;
7 16 7 wrapper Lorg/hibernate/loader/Loader$SqlStatementWrapper;
8 16 8 rs Ljava/sql/ResultSet;
9 16 9 st Ljava/sql/Statement;
Exception table:
from to target type
9 11 11 any
Exceptions:
throws java.sql.SQLException
MethodParameters:
Name Flags
sql
queryParameters
session
}
SourceFile: "DynamicBatchingCollectionInitializerBuilder.java"
NestHost: org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder
InnerClasses:
protected SqlStatementWrapper = org.hibernate.loader.Loader$SqlStatementWrapper of org.hibernate.loader.Loader
private DynamicBatchingCollectionLoader = org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader of org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder
org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader$1
org.hibernate.loader.collection.DynamicBatchingCollectionInitializerBuilder$DynamicBatchingCollectionLoader$2