public abstract class org.hibernate.loader.entity.BatchingEntityLoader implements org.hibernate.loader.entity.UniqueEntityLoader
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.hibernate.loader.entity.BatchingEntityLoader
  super_class: java.lang.Object
{
  private static final org.jboss.logging.Logger log;
    descriptor: Lorg/jboss/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final org.hibernate.persister.entity.EntityPersister persister;
    descriptor: Lorg/hibernate/persister/entity/EntityPersister;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 36
            ldc Lorg/hibernate/loader/entity/BatchingEntityLoader;
            invokestatic org.jboss.logging.Logger.getLogger:(Ljava/lang/Class;)Lorg/jboss/logging/Logger;
            putstatic org.hibernate.loader.entity.BatchingEntityLoader.log:Lorg/jboss/logging/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.hibernate.persister.entity.EntityPersister);
    descriptor: (Lorg/hibernate/persister/entity/EntityPersister;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.loader.entity.BatchingEntityLoader this
        start local 1 // org.hibernate.persister.entity.EntityPersister persister
         0: .line 40
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 41
            aload 0 /* this */
            aload 1 /* persister */
            putfield org.hibernate.loader.entity.BatchingEntityLoader.persister:Lorg/hibernate/persister/entity/EntityPersister;
         2: .line 42
            return
        end local 1 // org.hibernate.persister.entity.EntityPersister persister
        end local 0 // org.hibernate.loader.entity.BatchingEntityLoader this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/hibernate/loader/entity/BatchingEntityLoader;
            0    3     1  persister  Lorg/hibernate/persister/entity/EntityPersister;
    MethodParameters:
           Name  Flags
      persister  

  public org.hibernate.persister.entity.EntityPersister persister();
    descriptor: ()Lorg/hibernate/persister/entity/EntityPersister;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.loader.entity.BatchingEntityLoader this
         0: .line 45
            aload 0 /* this */
            getfield org.hibernate.loader.entity.BatchingEntityLoader.persister:Lorg/hibernate/persister/entity/EntityPersister;
            areturn
        end local 0 // org.hibernate.loader.entity.BatchingEntityLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/loader/entity/BatchingEntityLoader;

  public java.lang.Object load(java.io.Serializable, java.lang.Object, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Ljava/io/Serializable;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.hibernate.loader.entity.BatchingEntityLoader this
        start local 1 // java.io.Serializable id
        start local 2 // java.lang.Object optionalObject
        start local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 50
            aload 0 /* this */
            aload 1 /* id */
            aload 2 /* optionalObject */
            aload 3 /* session */
            getstatic org.hibernate.LockOptions.NONE:Lorg/hibernate/LockOptions;
            invokevirtual org.hibernate.loader.entity.BatchingEntityLoader.load:(Ljava/io/Serializable;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/LockOptions;)Ljava/lang/Object;
            areturn
        end local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 2 // java.lang.Object optionalObject
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.loader.entity.BatchingEntityLoader this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lorg/hibernate/loader/entity/BatchingEntityLoader;
            0    1     1              id  Ljava/io/Serializable;
            0    1     2  optionalObject  Ljava/lang/Object;
            0    1     3         session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
    MethodParameters:
                Name  Flags
      id              
      optionalObject  
      session         

  protected org.hibernate.engine.spi.QueryParameters buildQueryParameters(java.io.Serializable, java.io.Serializable[], java.lang.Object, org.hibernate.LockOptions);
    descriptor: (Ljava/io/Serializable;[Ljava/io/Serializable;Ljava/lang/Object;Lorg/hibernate/LockOptions;)Lorg/hibernate/engine/spi/QueryParameters;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=7, args_size=5
        start local 0 // org.hibernate.loader.entity.BatchingEntityLoader this
        start local 1 // java.io.Serializable id
        start local 2 // java.io.Serializable[] ids
        start local 3 // java.lang.Object optionalObject
        start local 4 // org.hibernate.LockOptions lockOptions
         0: .line 58
            aload 2 /* ids */
            arraylength
            anewarray org.hibernate.type.Type
            astore 5 /* types */
        start local 5 // org.hibernate.type.Type[] types
         1: .line 59
            aload 5 /* types */
            aload 0 /* this */
            invokevirtual org.hibernate.loader.entity.BatchingEntityLoader.persister:()Lorg/hibernate/persister/entity/EntityPersister;
            invokeinterface org.hibernate.persister.entity.EntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            invokestatic java.util.Arrays.fill:([Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 61
            new org.hibernate.engine.spi.QueryParameters
            dup
            invokespecial org.hibernate.engine.spi.QueryParameters.<init>:()V
            astore 6 /* qp */
        start local 6 // org.hibernate.engine.spi.QueryParameters qp
         3: .line 62
            aload 6 /* qp */
            aload 5 /* types */
            invokevirtual org.hibernate.engine.spi.QueryParameters.setPositionalParameterTypes:([Lorg/hibernate/type/Type;)V
         4: .line 63
            aload 6 /* qp */
            aload 2 /* ids */
            invokevirtual org.hibernate.engine.spi.QueryParameters.setPositionalParameterValues:([Ljava/lang/Object;)V
         5: .line 64
            aload 6 /* qp */
            aload 3 /* optionalObject */
            invokevirtual org.hibernate.engine.spi.QueryParameters.setOptionalObject:(Ljava/lang/Object;)V
         6: .line 65
            aload 6 /* qp */
            aload 0 /* this */
            invokevirtual org.hibernate.loader.entity.BatchingEntityLoader.persister:()Lorg/hibernate/persister/entity/EntityPersister;
            invokeinterface org.hibernate.persister.entity.EntityPersister.getEntityName:()Ljava/lang/String;
            invokevirtual org.hibernate.engine.spi.QueryParameters.setOptionalEntityName:(Ljava/lang/String;)V
         7: .line 66
            aload 6 /* qp */
            aload 1 /* id */
            invokevirtual org.hibernate.engine.spi.QueryParameters.setOptionalId:(Ljava/io/Serializable;)V
         8: .line 67
            aload 6 /* qp */
            aload 4 /* lockOptions */
            invokevirtual org.hibernate.engine.spi.QueryParameters.setLockOptions:(Lorg/hibernate/LockOptions;)V
         9: .line 68
            aload 6 /* qp */
            areturn
        end local 6 // org.hibernate.engine.spi.QueryParameters qp
        end local 5 // org.hibernate.type.Type[] types
        end local 4 // org.hibernate.LockOptions lockOptions
        end local 3 // java.lang.Object optionalObject
        end local 2 // java.io.Serializable[] ids
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.loader.entity.BatchingEntityLoader this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0            this  Lorg/hibernate/loader/entity/BatchingEntityLoader;
            0   10     1              id  Ljava/io/Serializable;
            0   10     2             ids  [Ljava/io/Serializable;
            0   10     3  optionalObject  Ljava/lang/Object;
            0   10     4     lockOptions  Lorg/hibernate/LockOptions;
            1   10     5           types  [Lorg/hibernate/type/Type;
            3   10     6              qp  Lorg/hibernate/engine/spi/QueryParameters;
    MethodParameters:
                Name  Flags
      id              
      ids             
      optionalObject  
      lockOptions     

  protected java.lang.Object getObjectFromList(java.util.List, java.io.Serializable, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Ljava/util/List;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // org.hibernate.loader.entity.BatchingEntityLoader this
        start local 1 // java.util.List results
        start local 2 // java.io.Serializable id
        start local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 72
            aload 1 /* results */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 9
      StackMap locals: org.hibernate.loader.entity.BatchingEntityLoader java.util.List java.io.Serializable org.hibernate.engine.spi.SharedSessionContractImplementor top java.util.Iterator
      StackMap stack:
         1: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 4 /* obj */
        start local 4 // java.lang.Object obj
         2: .line 73
            aload 0 /* this */
            getfield org.hibernate.loader.entity.BatchingEntityLoader.persister:Lorg/hibernate/persister/entity/EntityPersister;
            invokeinterface org.hibernate.persister.entity.EntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
         3: .line 74
            aload 2 /* id */
         4: .line 75
            aload 3 /* session */
            aload 4 /* obj */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getContextEntityIdentifier:(Ljava/lang/Object;)Ljava/io/Serializable;
         5: .line 76
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
         6: .line 73
            invokeinterface org.hibernate.type.Type.isEqual:(Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Z
            istore 6 /* equal */
        start local 6 // boolean equal
         7: .line 78
            iload 6 /* equal */
            ifeq 9
         8: .line 79
            aload 4 /* obj */
            areturn
        end local 6 // boolean equal
        end local 4 // java.lang.Object obj
         9: .line 72
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        10: .line 82
            aconst_null
            areturn
        end local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 2 // java.io.Serializable id
        end local 1 // java.util.List results
        end local 0 // org.hibernate.loader.entity.BatchingEntityLoader this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lorg/hibernate/loader/entity/BatchingEntityLoader;
            0   11     1  results  Ljava/util/List;
            0   11     2       id  Ljava/io/Serializable;
            0   11     3  session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            2    9     4      obj  Ljava/lang/Object;
            7    9     6    equal  Z
    MethodParameters:
         Name  Flags
      results  
      id       
      session  

  protected java.lang.Object doBatchLoad(java.io.Serializable, org.hibernate.loader.Loader, org.hibernate.engine.spi.SharedSessionContractImplementor, java.io.Serializable[], java.lang.Object, org.hibernate.LockOptions);
    descriptor: (Ljava/io/Serializable;Lorg/hibernate/loader/Loader;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;[Ljava/io/Serializable;Ljava/lang/Object;Lorg/hibernate/LockOptions;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=9, args_size=7
        start local 0 // org.hibernate.loader.entity.BatchingEntityLoader this
        start local 1 // java.io.Serializable id
        start local 2 // org.hibernate.loader.Loader loaderToUse
        start local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        start local 4 // java.io.Serializable[] ids
        start local 5 // java.lang.Object optionalObject
        start local 6 // org.hibernate.LockOptions lockOptions
         0: .line 92
            getstatic org.hibernate.loader.entity.BatchingEntityLoader.log:Lorg/jboss/logging/Logger;
            invokevirtual org.jboss.logging.Logger.isDebugEnabled:()Z
            ifeq 2
         1: .line 93
            getstatic org.hibernate.loader.entity.BatchingEntityLoader.log:Lorg/jboss/logging/Logger;
            ldc "Batch loading entity: %s"
            aload 0 /* this */
            getfield org.hibernate.loader.entity.BatchingEntityLoader.persister:Lorg/hibernate/persister/entity/EntityPersister;
            aload 4 /* ids */
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;[Ljava/io/Serializable;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            invokevirtual org.jboss.logging.Logger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 96
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* id */
            aload 4 /* ids */
            aload 5 /* optionalObject */
            aload 6 /* lockOptions */
            invokevirtual org.hibernate.loader.entity.BatchingEntityLoader.buildQueryParameters:(Ljava/io/Serializable;[Ljava/io/Serializable;Ljava/lang/Object;Lorg/hibernate/LockOptions;)Lorg/hibernate/engine/spi/QueryParameters;
            astore 7 /* qp */
        start local 7 // org.hibernate.engine.spi.QueryParameters qp
         3: .line 99
            aload 2 /* loaderToUse */
            aload 3 /* session */
            aload 7 /* qp */
            iconst_0
            invokevirtual org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/engine/spi/QueryParameters;Z)Ljava/util/List;
            astore 8 /* results */
        start local 8 // java.util.List results
         4: .line 100
            getstatic org.hibernate.loader.entity.BatchingEntityLoader.log:Lorg/jboss/logging/Logger;
            ldc "Done entity batch load"
            invokevirtual org.jboss.logging.Logger.debug:(Ljava/lang/Object;)V
         5: .line 105
            aload 4 /* ids */
         6: .line 106
            aload 8 /* results */
         7: .line 107
            aload 0 /* this */
            invokevirtual org.hibernate.loader.entity.BatchingEntityLoader.persister:()Lorg/hibernate/persister/entity/EntityPersister;
         8: .line 108
            aload 3 /* session */
         9: .line 104
            invokestatic org.hibernate.engine.internal.BatchFetchQueueHelper.removeNotFoundBatchLoadableEntityKeys:([Ljava/io/Serializable;Ljava/util/List;Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
        10: .line 110
            aload 0 /* this */
            aload 8 /* results */
            aload 1 /* id */
            aload 3 /* session */
            invokevirtual org.hibernate.loader.entity.BatchingEntityLoader.getObjectFromList:(Ljava/util/List;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/Object;
        11: areturn
        end local 8 // java.util.List results
        12: .line 112
      StackMap locals: org.hibernate.loader.entity.BatchingEntityLoader java.io.Serializable org.hibernate.loader.Loader org.hibernate.engine.spi.SharedSessionContractImplementor java.io.Serializable[] java.lang.Object org.hibernate.LockOptions org.hibernate.engine.spi.QueryParameters
      StackMap stack: java.sql.SQLException
            astore 8 /* sqle */
        start local 8 // java.sql.SQLException sqle
        13: .line 113
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcServices:()Lorg/hibernate/engine/jdbc/spi/JdbcServices;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcServices.getSqlExceptionHelper:()Lorg/hibernate/engine/jdbc/spi/SqlExceptionHelper;
        14: .line 114
            aload 8 /* sqle */
        15: .line 115
            new java.lang.StringBuilder
            dup
            ldc "could not load an entity batch: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.hibernate.loader.entity.BatchingEntityLoader.persister:()Lorg/hibernate/persister/entity/EntityPersister;
            aload 4 /* ids */
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;[Ljava/io/Serializable;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        16: .line 116
            aload 2 /* loaderToUse */
            invokevirtual org.hibernate.loader.Loader.getSQLString:()Ljava/lang/String;
        17: .line 113
            invokevirtual org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert:(Ljava/sql/SQLException;Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/JDBCException;
            athrow
        end local 8 // java.sql.SQLException sqle
        end local 7 // org.hibernate.engine.spi.QueryParameters qp
        end local 6 // org.hibernate.LockOptions lockOptions
        end local 5 // java.lang.Object optionalObject
        end local 4 // java.io.Serializable[] ids
        end local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 2 // org.hibernate.loader.Loader loaderToUse
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.loader.entity.BatchingEntityLoader this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   18     0            this  Lorg/hibernate/loader/entity/BatchingEntityLoader;
            0   18     1              id  Ljava/io/Serializable;
            0   18     2     loaderToUse  Lorg/hibernate/loader/Loader;
            0   18     3         session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            0   18     4             ids  [Ljava/io/Serializable;
            0   18     5  optionalObject  Ljava/lang/Object;
            0   18     6     lockOptions  Lorg/hibernate/LockOptions;
            3   18     7              qp  Lorg/hibernate/engine/spi/QueryParameters;
            4   12     8         results  Ljava/util/List;
           13   18     8            sqle  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           3    11      12  Class java.sql.SQLException
    MethodParameters:
                Name  Flags
      id              
      loaderToUse     
      session         
      ids             
      optionalObject  
      lockOptions     
}
SourceFile: "BatchingEntityLoader.java"