public class org.hibernate.id.SelectGenerator$SelectGeneratorDelegate extends org.hibernate.id.insert.AbstractSelectingDelegate implements org.hibernate.id.insert.InsertGeneratedIdentifierDelegate
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.id.SelectGenerator$SelectGeneratorDelegate
  super_class: org.hibernate.id.insert.AbstractSelectingDelegate
{
  private final org.hibernate.id.PostInsertIdentityPersister persister;
    descriptor: Lorg/hibernate/id/PostInsertIdentityPersister;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hibernate.dialect.Dialect dialect;
    descriptor: Lorg/hibernate/dialect/Dialect;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String uniqueKeyPropertyName;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hibernate.type.Type uniqueKeyType;
    descriptor: Lorg/hibernate/type/Type;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hibernate.type.Type idType;
    descriptor: Lorg/hibernate/type/Type;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String idSelectString;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private void <init>(org.hibernate.id.PostInsertIdentityPersister, org.hibernate.dialect.Dialect, java.lang.String);
    descriptor: (Lorg/hibernate/id/PostInsertIdentityPersister;Lorg/hibernate/dialect/Dialect;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.hibernate.id.SelectGenerator$SelectGeneratorDelegate this
        start local 1 // org.hibernate.id.PostInsertIdentityPersister persister
        start local 2 // org.hibernate.dialect.Dialect dialect
        start local 3 // java.lang.String suppliedUniqueKeyPropertyName
         0: .line 112
            aload 0 /* this */
            aload 1 /* persister */
            invokespecial org.hibernate.id.insert.AbstractSelectingDelegate.<init>:(Lorg/hibernate/id/PostInsertIdentityPersister;)V
         1: .line 113
            aload 0 /* this */
            aload 1 /* persister */
            putfield org.hibernate.id.SelectGenerator$SelectGeneratorDelegate.persister:Lorg/hibernate/id/PostInsertIdentityPersister;
         2: .line 114
            aload 0 /* this */
            aload 2 /* dialect */
            putfield org.hibernate.id.SelectGenerator$SelectGeneratorDelegate.dialect:Lorg/hibernate/dialect/Dialect;
         3: .line 115
            aload 0 /* this */
            aload 1 /* persister */
            aload 3 /* suppliedUniqueKeyPropertyName */
            invokestatic org.hibernate.id.SelectGenerator.determineNameOfPropertyToUse:(Lorg/hibernate/id/PostInsertIdentityPersister;Ljava/lang/String;)Ljava/lang/String;
            putfield org.hibernate.id.SelectGenerator$SelectGeneratorDelegate.uniqueKeyPropertyName:Ljava/lang/String;
         4: .line 117
            aload 0 /* this */
            aload 1 /* persister */
            aload 0 /* this */
            getfield org.hibernate.id.SelectGenerator$SelectGeneratorDelegate.uniqueKeyPropertyName:Ljava/lang/String;
            invokeinterface org.hibernate.id.PostInsertIdentityPersister.getSelectByUniqueKeyString:(Ljava/lang/String;)Ljava/lang/String;
            putfield org.hibernate.id.SelectGenerator$SelectGeneratorDelegate.idSelectString:Ljava/lang/String;
         5: .line 118
            aload 0 /* this */
            aload 1 /* persister */
            aload 0 /* this */
            getfield org.hibernate.id.SelectGenerator$SelectGeneratorDelegate.uniqueKeyPropertyName:Ljava/lang/String;
            invokeinterface org.hibernate.id.PostInsertIdentityPersister.getPropertyType:(Ljava/lang/String;)Lorg/hibernate/type/Type;
            putfield org.hibernate.id.SelectGenerator$SelectGeneratorDelegate.uniqueKeyType:Lorg/hibernate/type/Type;
         6: .line 119
            aload 0 /* this */
            aload 1 /* persister */
            invokeinterface org.hibernate.id.PostInsertIdentityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            putfield org.hibernate.id.SelectGenerator$SelectGeneratorDelegate.idType:Lorg/hibernate/type/Type;
         7: .line 120
            return
        end local 3 // java.lang.String suppliedUniqueKeyPropertyName
        end local 2 // org.hibernate.dialect.Dialect dialect
        end local 1 // org.hibernate.id.PostInsertIdentityPersister persister
        end local 0 // org.hibernate.id.SelectGenerator$SelectGeneratorDelegate this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0    8     0                           this  Lorg/hibernate/id/SelectGenerator$SelectGeneratorDelegate;
            0    8     1                      persister  Lorg/hibernate/id/PostInsertIdentityPersister;
            0    8     2                        dialect  Lorg/hibernate/dialect/Dialect;
            0    8     3  suppliedUniqueKeyPropertyName  Ljava/lang/String;
    MethodParameters:
                               Name  Flags
      persister                      
      dialect                        
      suppliedUniqueKeyPropertyName  

  public org.hibernate.id.insert.IdentifierGeneratingInsert prepareIdentifierGeneratingInsert();
    descriptor: ()Lorg/hibernate/id/insert/IdentifierGeneratingInsert;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.id.SelectGenerator$SelectGeneratorDelegate this
         0: .line 123
            new org.hibernate.id.insert.IdentifierGeneratingInsert
            dup
            aload 0 /* this */
            getfield org.hibernate.id.SelectGenerator$SelectGeneratorDelegate.dialect:Lorg/hibernate/dialect/Dialect;
            invokespecial org.hibernate.id.insert.IdentifierGeneratingInsert.<init>:(Lorg/hibernate/dialect/Dialect;)V
            areturn
        end local 0 // org.hibernate.id.SelectGenerator$SelectGeneratorDelegate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/id/SelectGenerator$SelectGeneratorDelegate;

  protected java.lang.String getSelectSQL();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.id.SelectGenerator$SelectGeneratorDelegate this
         0: .line 130
            aload 0 /* this */
            getfield org.hibernate.id.SelectGenerator$SelectGeneratorDelegate.idSelectString:Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.id.SelectGenerator$SelectGeneratorDelegate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/id/SelectGenerator$SelectGeneratorDelegate;

  protected void bindParameters(org.hibernate.engine.spi.SessionImplementor, java.sql.PreparedStatement, java.lang.Object);
    descriptor: (Lorg/hibernate/engine/spi/SessionImplementor;Ljava/sql/PreparedStatement;Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.hibernate.id.SelectGenerator$SelectGeneratorDelegate this
        start local 1 // org.hibernate.engine.spi.SessionImplementor session
        start local 2 // java.sql.PreparedStatement ps
        start local 3 // java.lang.Object entity
         0: .line 137
            aload 0 /* this */
            getfield org.hibernate.id.SelectGenerator$SelectGeneratorDelegate.persister:Lorg/hibernate/id/PostInsertIdentityPersister;
            aload 3 /* entity */
            aload 0 /* this */
            getfield org.hibernate.id.SelectGenerator$SelectGeneratorDelegate.uniqueKeyPropertyName:Ljava/lang/String;
            invokeinterface org.hibernate.id.PostInsertIdentityPersister.getPropertyValue:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            astore 4 /* uniqueKeyValue */
        start local 4 // java.lang.Object uniqueKeyValue
         1: .line 138
            aload 0 /* this */
            getfield org.hibernate.id.SelectGenerator$SelectGeneratorDelegate.uniqueKeyType:Lorg/hibernate/type/Type;
            aload 2 /* ps */
            aload 4 /* uniqueKeyValue */
            iconst_1
            aload 1 /* session */
            invokeinterface org.hibernate.type.Type.nullSafeSet:(Ljava/sql/PreparedStatement;Ljava/lang/Object;ILorg/hibernate/engine/spi/SessionImplementor;)V
         2: .line 139
            return
        end local 4 // java.lang.Object uniqueKeyValue
        end local 3 // java.lang.Object entity
        end local 2 // java.sql.PreparedStatement ps
        end local 1 // org.hibernate.engine.spi.SessionImplementor session
        end local 0 // org.hibernate.id.SelectGenerator$SelectGeneratorDelegate this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lorg/hibernate/id/SelectGenerator$SelectGeneratorDelegate;
            0    3     1         session  Lorg/hibernate/engine/spi/SessionImplementor;
            0    3     2              ps  Ljava/sql/PreparedStatement;
            0    3     3          entity  Ljava/lang/Object;
            1    3     4  uniqueKeyValue  Ljava/lang/Object;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
         Name  Flags
      session  
      ps       
      entity   

  protected java.io.Serializable getResult(org.hibernate.engine.spi.SessionImplementor, java.sql.ResultSet, java.lang.Object);
    descriptor: (Lorg/hibernate/engine/spi/SessionImplementor;Ljava/sql/ResultSet;Ljava/lang/Object;)Ljava/io/Serializable;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.hibernate.id.SelectGenerator$SelectGeneratorDelegate this
        start local 1 // org.hibernate.engine.spi.SessionImplementor session
        start local 2 // java.sql.ResultSet rs
        start local 3 // java.lang.Object entity
         0: .line 145
            aload 2 /* rs */
            invokeinterface java.sql.ResultSet.next:()Z
            ifne 6
         1: .line 146
            new org.hibernate.id.IdentifierGenerationException
            dup
         2: .line 147
            new java.lang.StringBuilder
            dup
            ldc "the inserted row could not be located by the unique key: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 148
            aload 0 /* this */
            getfield org.hibernate.id.SelectGenerator$SelectGeneratorDelegate.uniqueKeyPropertyName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 147
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 146
            invokespecial org.hibernate.id.IdentifierGenerationException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 151
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.id.SelectGenerator$SelectGeneratorDelegate.idType:Lorg/hibernate/type/Type;
         7: .line 152
            aload 2 /* rs */
         8: .line 153
            aload 0 /* this */
            getfield org.hibernate.id.SelectGenerator$SelectGeneratorDelegate.persister:Lorg/hibernate/id/PostInsertIdentityPersister;
            invokeinterface org.hibernate.id.PostInsertIdentityPersister.getRootTableKeyColumnNames:()[Ljava/lang/String;
         9: .line 154
            aload 1 /* session */
        10: .line 155
            aload 3 /* entity */
        11: .line 151
            invokeinterface org.hibernate.type.Type.nullSafeGet:(Ljava/sql/ResultSet;[Ljava/lang/String;Lorg/hibernate/engine/spi/SessionImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.io.Serializable
            areturn
        end local 3 // java.lang.Object entity
        end local 2 // java.sql.ResultSet rs
        end local 1 // org.hibernate.engine.spi.SessionImplementor session
        end local 0 // org.hibernate.id.SelectGenerator$SelectGeneratorDelegate this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lorg/hibernate/id/SelectGenerator$SelectGeneratorDelegate;
            0   12     1  session  Lorg/hibernate/engine/spi/SessionImplementor;
            0   12     2       rs  Ljava/sql/ResultSet;
            0   12     3   entity  Ljava/lang/Object;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
         Name  Flags
      session  
      rs       
      entity   
}
SourceFile: "SelectGenerator.java"
NestHost: org.hibernate.id.SelectGenerator
InnerClasses:
  public SelectGeneratorDelegate = org.hibernate.id.SelectGenerator$SelectGeneratorDelegate of org.hibernate.id.SelectGenerator