public class org.hibernate.persister.collection.OneToManyPersister extends org.hibernate.persister.collection.AbstractCollectionPersister
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.persister.collection.OneToManyPersister
  super_class: org.hibernate.persister.collection.AbstractCollectionPersister
{
  private final boolean cascadeDeleteEnabled;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean keyIsNullable;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean keyIsUpdateable;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.hibernate.engine.jdbc.batch.internal.BasicBatchKey deleteRowBatchKey;
    descriptor: Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
    flags: (0x0002) ACC_PRIVATE

  private org.hibernate.engine.jdbc.batch.internal.BasicBatchKey insertRowBatchKey;
    descriptor: Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
    flags: (0x0002) ACC_PRIVATE

  protected boolean isRowDeleteEnabled();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
         0: .line 53
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.keyIsUpdateable:Z
            ifeq 1
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.keyIsNullable:Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/persister/collection/OneToManyPersister;

  protected boolean isRowInsertEnabled();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
         0: .line 58
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.keyIsUpdateable:Z
            ireturn
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/collection/OneToManyPersister;

  public boolean isCascadeDeleteEnabled();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
         0: .line 62
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.cascadeDeleteEnabled:Z
            ireturn
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/collection/OneToManyPersister;

  public void <init>(org.hibernate.mapping.Collection, org.hibernate.cache.spi.access.CollectionDataAccess, org.hibernate.persister.spi.PersisterCreationContext);
    descriptor: (Lorg/hibernate/mapping/Collection;Lorg/hibernate/cache/spi/access/CollectionDataAccess;Lorg/hibernate/persister/spi/PersisterCreationContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
        start local 1 // org.hibernate.mapping.Collection collectionBinding
        start local 2 // org.hibernate.cache.spi.access.CollectionDataAccess cacheAccessStrategy
        start local 3 // org.hibernate.persister.spi.PersisterCreationContext creationContext
         0: .line 69
            aload 0 /* this */
            aload 1 /* collectionBinding */
            aload 2 /* cacheAccessStrategy */
            aload 3 /* creationContext */
            invokespecial org.hibernate.persister.collection.AbstractCollectionPersister.<init>:(Lorg/hibernate/mapping/Collection;Lorg/hibernate/cache/spi/access/CollectionDataAccess;Lorg/hibernate/persister/spi/PersisterCreationContext;)V
         1: .line 70
            aload 0 /* this */
            aload 1 /* collectionBinding */
            invokevirtual org.hibernate.mapping.Collection.getKey:()Lorg/hibernate/mapping/KeyValue;
            invokeinterface org.hibernate.mapping.KeyValue.isCascadeDeleteEnabled:()Z
            ifeq 3
         2: .line 71
            aload 3 /* creationContext */
            invokeinterface org.hibernate.persister.spi.PersisterCreationContext.getSessionFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokevirtual org.hibernate.dialect.Dialect.supportsCascadeDelete:()Z
            ifeq 3
            iconst_1
            goto 4
      StackMap locals: org.hibernate.persister.collection.OneToManyPersister org.hibernate.mapping.Collection org.hibernate.cache.spi.access.CollectionDataAccess org.hibernate.persister.spi.PersisterCreationContext
      StackMap stack: org.hibernate.persister.collection.OneToManyPersister
         3: iconst_0
         4: .line 70
      StackMap locals: org.hibernate.persister.collection.OneToManyPersister org.hibernate.mapping.Collection org.hibernate.cache.spi.access.CollectionDataAccess org.hibernate.persister.spi.PersisterCreationContext
      StackMap stack: org.hibernate.persister.collection.OneToManyPersister int
            putfield org.hibernate.persister.collection.OneToManyPersister.cascadeDeleteEnabled:Z
         5: .line 72
            aload 0 /* this */
            aload 1 /* collectionBinding */
            invokevirtual org.hibernate.mapping.Collection.getKey:()Lorg/hibernate/mapping/KeyValue;
            invokeinterface org.hibernate.mapping.KeyValue.isNullable:()Z
            putfield org.hibernate.persister.collection.OneToManyPersister.keyIsNullable:Z
         6: .line 73
            aload 0 /* this */
            aload 1 /* collectionBinding */
            invokevirtual org.hibernate.mapping.Collection.getKey:()Lorg/hibernate/mapping/KeyValue;
            invokeinterface org.hibernate.mapping.KeyValue.isUpdateable:()Z
            putfield org.hibernate.persister.collection.OneToManyPersister.keyIsUpdateable:Z
         7: .line 74
            return
        end local 3 // org.hibernate.persister.spi.PersisterCreationContext creationContext
        end local 2 // org.hibernate.cache.spi.access.CollectionDataAccess cacheAccessStrategy
        end local 1 // org.hibernate.mapping.Collection collectionBinding
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    8     0                 this  Lorg/hibernate/persister/collection/OneToManyPersister;
            0    8     1    collectionBinding  Lorg/hibernate/mapping/Collection;
            0    8     2  cacheAccessStrategy  Lorg/hibernate/cache/spi/access/CollectionDataAccess;
            0    8     3      creationContext  Lorg/hibernate/persister/spi/PersisterCreationContext;
    Exceptions:
      throws org.hibernate.MappingException, org.hibernate.cache.CacheException
    MethodParameters:
                     Name  Flags
      collectionBinding    
      cacheAccessStrategy  
      creationContext      

  protected java.lang.String generateDeleteString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
         0: .line 81
            new org.hibernate.sql.Update
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokespecial org.hibernate.sql.Update.<init>:(Lorg/hibernate/dialect/Dialect;)V
         1: .line 82
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.qualifiedTableName:Ljava/lang/String;
            invokevirtual org.hibernate.sql.Update.setTableName:(Ljava/lang/String;)Lorg/hibernate/sql/Update;
         2: .line 83
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.keyColumnNames:[Ljava/lang/String;
            ldc "null"
            invokevirtual org.hibernate.sql.Update.addColumns:([Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/Update;
         3: .line 84
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.keyColumnNames:[Ljava/lang/String;
            invokevirtual org.hibernate.sql.Update.addPrimaryKeyColumns:([Ljava/lang/String;)Lorg/hibernate/sql/Update;
         4: .line 81
            astore 1 /* update */
        start local 1 // org.hibernate.sql.Update update
         5: .line 86
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.hasIndex:Z
            ifeq 12
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.indexContainsFormula:Z
            ifne 12
         6: .line 87
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         7: goto 11
         8: .line 88
      StackMap locals: org.hibernate.sql.Update int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.indexColumnIsSettable:[Z
            iload 2 /* i */
            baload
            ifeq 10
         9: .line 89
            aload 1 /* update */
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.indexColumnNames:[Ljava/lang/String;
            iload 2 /* i */
            aaload
            ldc "null"
            invokevirtual org.hibernate.sql.Update.addColumn:(Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
        10: .line 87
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 2 /* i */
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.indexColumnNames:[Ljava/lang/String;
            arraylength
            if_icmplt 8
        end local 2 // int i
        12: .line 94
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.hasWhere:Z
            ifeq 14
        13: .line 95
            aload 1 /* update */
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.sqlWhereString:Ljava/lang/String;
            invokevirtual org.hibernate.sql.Update.setWhere:(Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
        14: .line 98
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isCommentsEnabled:()Z
            ifeq 16
        15: .line 99
            aload 1 /* update */
            new java.lang.StringBuilder
            dup
            ldc "delete one-to-many "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getRole:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Update.setComment:(Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
        16: .line 102
      StackMap locals:
      StackMap stack:
            aload 1 /* update */
            invokevirtual org.hibernate.sql.Update.toStatementString:()Ljava/lang/String;
            areturn
        end local 1 // org.hibernate.sql.Update update
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0    this  Lorg/hibernate/persister/collection/OneToManyPersister;
            5   17     1  update  Lorg/hibernate/sql/Update;
            7   12     2       i  I

  protected java.lang.String generateInsertRowString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
         0: .line 110
            new org.hibernate.sql.Update
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokespecial org.hibernate.sql.Update.<init>:(Lorg/hibernate/dialect/Dialect;)V
         1: .line 111
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.qualifiedTableName:Ljava/lang/String;
            invokevirtual org.hibernate.sql.Update.setTableName:(Ljava/lang/String;)Lorg/hibernate/sql/Update;
         2: .line 112
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.keyColumnNames:[Ljava/lang/String;
            invokevirtual org.hibernate.sql.Update.addColumns:([Ljava/lang/String;)Lorg/hibernate/sql/Update;
         3: .line 110
            astore 1 /* update */
        start local 1 // org.hibernate.sql.Update update
         4: .line 114
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.hasIndex:Z
            ifeq 11
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.indexContainsFormula:Z
            ifne 11
         5: .line 115
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         6: goto 10
         7: .line 116
      StackMap locals: org.hibernate.sql.Update int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.indexColumnIsSettable:[Z
            iload 2 /* i */
            baload
            ifeq 9
         8: .line 117
            aload 1 /* update */
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.indexColumnNames:[Ljava/lang/String;
            iload 2 /* i */
            aaload
            invokevirtual org.hibernate.sql.Update.addColumn:(Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
         9: .line 115
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 2 /* i */
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.indexColumnNames:[Ljava/lang/String;
            arraylength
            if_icmplt 7
        end local 2 // int i
        11: .line 124
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isCommentsEnabled:()Z
            ifeq 13
        12: .line 125
            aload 1 /* update */
            new java.lang.StringBuilder
            dup
            ldc "create one-to-many row "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getRole:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Update.setComment:(Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
        13: .line 128
      StackMap locals:
      StackMap stack:
            aload 1 /* update */
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.elementColumnNames:[Ljava/lang/String;
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.elementColumnWriters:[Ljava/lang/String;
            invokevirtual org.hibernate.sql.Update.addPrimaryKeyColumns:([Ljava/lang/String;[Ljava/lang/String;)Lorg/hibernate/sql/Update;
        14: .line 129
            invokevirtual org.hibernate.sql.Update.toStatementString:()Ljava/lang/String;
        15: .line 128
            areturn
        end local 1 // org.hibernate.sql.Update update
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0    this  Lorg/hibernate/persister/collection/OneToManyPersister;
            4   16     1  update  Lorg/hibernate/sql/Update;
            6   11     2       i  I

  protected java.lang.String generateUpdateRowString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
         0: .line 137
            new org.hibernate.sql.Update
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokespecial org.hibernate.sql.Update.<init>:(Lorg/hibernate/dialect/Dialect;)V
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.qualifiedTableName:Ljava/lang/String;
            invokevirtual org.hibernate.sql.Update.setTableName:(Ljava/lang/String;)Lorg/hibernate/sql/Update;
            astore 1 /* update */
        start local 1 // org.hibernate.sql.Update update
         1: .line 138
            aload 1 /* update */
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.elementColumnNames:[Ljava/lang/String;
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.elementColumnIsSettable:[Z
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.elementColumnWriters:[Ljava/lang/String;
            invokevirtual org.hibernate.sql.Update.addPrimaryKeyColumns:([Ljava/lang/String;[Z[Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
         2: .line 139
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.hasIdentifier:Z
            ifeq 4
         3: .line 140
            aload 1 /* update */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.identifierColumnName:Ljava/lang/String;
            aastore
            invokevirtual org.hibernate.sql.Update.addPrimaryKeyColumns:([Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
         4: .line 142
      StackMap locals: org.hibernate.sql.Update
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.hasIndex:Z
            ifeq 11
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.indexContainsFormula:Z
            ifne 11
         5: .line 143
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         6: goto 10
         7: .line 144
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.indexColumnIsSettable:[Z
            iload 2 /* i */
            baload
            ifeq 9
         8: .line 145
            aload 1 /* update */
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.indexColumnNames:[Ljava/lang/String;
            iload 2 /* i */
            aaload
            invokevirtual org.hibernate.sql.Update.addColumn:(Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
         9: .line 143
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 2 /* i */
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.indexColumnNames:[Ljava/lang/String;
            arraylength
            if_icmplt 7
        end local 2 // int i
        11: .line 150
      StackMap locals:
      StackMap stack:
            aload 1 /* update */
            invokevirtual org.hibernate.sql.Update.toStatementString:()Ljava/lang/String;
            areturn
        end local 1 // org.hibernate.sql.Update update
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lorg/hibernate/persister/collection/OneToManyPersister;
            1   12     1  update  Lorg/hibernate/sql/Update;
            6   11     2       i  I

  protected java.lang.String generateDeleteRowString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
         0: .line 159
            new org.hibernate.sql.Update
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokespecial org.hibernate.sql.Update.<init>:(Lorg/hibernate/dialect/Dialect;)V
         1: .line 160
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.qualifiedTableName:Ljava/lang/String;
            invokevirtual org.hibernate.sql.Update.setTableName:(Ljava/lang/String;)Lorg/hibernate/sql/Update;
         2: .line 161
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.keyColumnNames:[Ljava/lang/String;
            ldc "null"
            invokevirtual org.hibernate.sql.Update.addColumns:([Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/Update;
         3: .line 159
            astore 1 /* update */
        start local 1 // org.hibernate.sql.Update update
         4: .line 163
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.hasIndex:Z
            ifeq 11
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.indexContainsFormula:Z
            ifne 11
         5: .line 164
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         6: goto 10
         7: .line 165
      StackMap locals: org.hibernate.sql.Update int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.indexColumnIsSettable:[Z
            iload 2 /* i */
            baload
            ifeq 9
         8: .line 166
            aload 1 /* update */
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.indexColumnNames:[Ljava/lang/String;
            iload 2 /* i */
            aaload
            ldc "null"
            invokevirtual org.hibernate.sql.Update.addColumn:(Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
         9: .line 164
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 2 /* i */
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.indexColumnNames:[Ljava/lang/String;
            arraylength
            if_icmplt 7
        end local 2 // int i
        11: .line 171
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isCommentsEnabled:()Z
            ifeq 13
        12: .line 172
            aload 1 /* update */
            new java.lang.StringBuilder
            dup
            ldc "delete one-to-many row "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getRole:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Update.setComment:(Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
        13: .line 178
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.keyColumnNames:[Ljava/lang/String;
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.elementColumnNames:[Ljava/lang/String;
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.join:([Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
            astore 2 /* rowSelectColumnNames */
        start local 2 // java.lang.String[] rowSelectColumnNames
        14: .line 179
            aload 1 /* update */
            aload 2 /* rowSelectColumnNames */
            invokevirtual org.hibernate.sql.Update.addPrimaryKeyColumns:([Ljava/lang/String;)Lorg/hibernate/sql/Update;
        15: .line 180
            invokevirtual org.hibernate.sql.Update.toStatementString:()Ljava/lang/String;
        16: .line 179
            areturn
        end local 2 // java.lang.String[] rowSelectColumnNames
        end local 1 // org.hibernate.sql.Update update
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   17     0                  this  Lorg/hibernate/persister/collection/OneToManyPersister;
            4   17     1                update  Lorg/hibernate/sql/Update;
            6   11     2                     i  I
           14   17     2  rowSelectColumnNames  [Ljava/lang/String;

  public void recreate(org.hibernate.collection.spi.PersistentCollection, java.io.Serializable, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Lorg/hibernate/collection/spi/PersistentCollection;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
        start local 1 // org.hibernate.collection.spi.PersistentCollection collection
        start local 2 // java.io.Serializable id
        start local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 186
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* id */
            aload 3 /* session */
            invokespecial org.hibernate.persister.collection.AbstractCollectionPersister.recreate:(Lorg/hibernate/collection/spi/PersistentCollection;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
         1: .line 187
            aload 0 /* this */
            aload 1 /* collection */
            aload 1 /* collection */
            aload 0 /* this */
            invokeinterface org.hibernate.collection.spi.PersistentCollection.entries:(Lorg/hibernate/persister/collection/CollectionPersister;)Ljava/util/Iterator;
            aload 2 /* id */
            iconst_1
            aload 3 /* session */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.writeIndex:(Lorg/hibernate/collection/spi/PersistentCollection;Ljava/util/Iterator;Ljava/io/Serializable;ZLorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
         2: .line 188
            return
        end local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 2 // java.io.Serializable id
        end local 1 // org.hibernate.collection.spi.PersistentCollection collection
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/hibernate/persister/collection/OneToManyPersister;
            0    3     1  collection  Lorg/hibernate/collection/spi/PersistentCollection;
            0    3     2          id  Ljava/io/Serializable;
            0    3     3     session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      collection  
      id          
      session     

  public void insertRows(org.hibernate.collection.spi.PersistentCollection, java.io.Serializable, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Lorg/hibernate/collection/spi/PersistentCollection;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
        start local 1 // org.hibernate.collection.spi.PersistentCollection collection
        start local 2 // java.io.Serializable id
        start local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 193
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* id */
            aload 3 /* session */
            invokespecial org.hibernate.persister.collection.AbstractCollectionPersister.insertRows:(Lorg/hibernate/collection/spi/PersistentCollection;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
         1: .line 194
            aload 0 /* this */
            aload 1 /* collection */
            aload 1 /* collection */
            aload 0 /* this */
            invokeinterface org.hibernate.collection.spi.PersistentCollection.entries:(Lorg/hibernate/persister/collection/CollectionPersister;)Ljava/util/Iterator;
            aload 2 /* id */
            iconst_1
            aload 3 /* session */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.writeIndex:(Lorg/hibernate/collection/spi/PersistentCollection;Ljava/util/Iterator;Ljava/io/Serializable;ZLorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
         2: .line 195
            return
        end local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 2 // java.io.Serializable id
        end local 1 // org.hibernate.collection.spi.PersistentCollection collection
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/hibernate/persister/collection/OneToManyPersister;
            0    3     1  collection  Lorg/hibernate/collection/spi/PersistentCollection;
            0    3     2          id  Ljava/io/Serializable;
            0    3     3     session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      collection  
      id          
      session     

  protected void doProcessQueuedOps(org.hibernate.collection.spi.PersistentCollection, java.io.Serializable, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Lorg/hibernate/collection/spi/PersistentCollection;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
        start local 1 // org.hibernate.collection.spi.PersistentCollection collection
        start local 2 // java.io.Serializable id
        start local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 200
            aload 0 /* this */
            aload 1 /* collection */
            aload 1 /* collection */
            invokeinterface org.hibernate.collection.spi.PersistentCollection.queuedAdditionIterator:()Ljava/util/Iterator;
            aload 2 /* id */
            iconst_0
            aload 3 /* session */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.writeIndex:(Lorg/hibernate/collection/spi/PersistentCollection;Ljava/util/Iterator;Ljava/io/Serializable;ZLorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
         1: .line 201
            return
        end local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 2 // java.io.Serializable id
        end local 1 // org.hibernate.collection.spi.PersistentCollection collection
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/hibernate/persister/collection/OneToManyPersister;
            0    2     1  collection  Lorg/hibernate/collection/spi/PersistentCollection;
            0    2     2          id  Ljava/io/Serializable;
            0    2     3     session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      collection  
      id          
      session     

  private void writeIndex(org.hibernate.collection.spi.PersistentCollection, java.util.Iterator, java.io.Serializable, boolean, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Lorg/hibernate/collection/spi/PersistentCollection;Ljava/util/Iterator;Ljava/io/Serializable;ZLorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=16, args_size=6
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
        start local 1 // org.hibernate.collection.spi.PersistentCollection collection
        start local 2 // java.util.Iterator entries
        start local 3 // java.io.Serializable id
        start local 4 // boolean resetIndex
        start local 5 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 210
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.isInverse:Z
            ifeq 80
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.hasIndex:Z
            ifeq 80
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.indexContainsFormula:Z
            ifne 80
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.indexColumnIsSettable:[Z
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.countTrue:([Z)I
            ifle 80
         1: .line 212
            aload 2 /* entries */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 80
         2: .line 213
            iload 4 /* resetIndex */
            ifeq 3
            iconst_0
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            aload 3 /* id */
            aload 5 /* session */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getSize:(Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)I
      StackMap locals:
      StackMap stack: int
         4: istore 6 /* nextIndex */
        start local 6 // int nextIndex
         5: .line 214
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getUpdateCheckStyle:()Lorg/hibernate/engine/spi/ExecuteUpdateResultCheckStyle;
            invokestatic org.hibernate.jdbc.Expectations.appropriateExpectation:(Lorg/hibernate/engine/spi/ExecuteUpdateResultCheckStyle;)Lorg/hibernate/jdbc/Expectation;
            astore 7 /* expectation */
        start local 7 // org.hibernate.jdbc.Expectation expectation
         6: .line 215
            goto 70
         7: .line 217
      StackMap locals: int org.hibernate.jdbc.Expectation
      StackMap stack:
            aload 2 /* entries */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 8 /* entry */
        start local 8 // java.lang.Object entry
         8: .line 218
            aload 8 /* entry */
            ifnull 69
            aload 1 /* collection */
            aload 8 /* entry */
            iload 6 /* nextIndex */
            invokeinterface org.hibernate.collection.spi.PersistentCollection.entryExists:(Ljava/lang/Object;I)Z
            ifeq 69
         9: .line 219
            iconst_1
            istore 9 /* offset */
        start local 9 // int offset
        10: .line 220
            aconst_null
            astore 10 /* st */
        start local 10 // java.sql.PreparedStatement st
        11: .line 221
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.isUpdateCallable:()Z
            istore 11 /* callable */
        start local 11 // boolean callable
        12: .line 222
            aload 7 /* expectation */
            invokeinterface org.hibernate.jdbc.Expectation.canBeBatched:()Z
            istore 12 /* useBatch */
        start local 12 // boolean useBatch
        13: .line 223
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getSQLUpdateRowString:()Ljava/lang/String;
            astore 13 /* sql */
        start local 13 // java.lang.String sql
        14: .line 225
            iload 12 /* useBatch */
            ifeq 26
        15: .line 226
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.recreateBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
            ifnonnull 20
        16: .line 227
            aload 0 /* this */
            new org.hibernate.engine.jdbc.batch.internal.BasicBatchKey
            dup
        17: .line 228
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getRole:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "#RECREATE"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        18: .line 229
            aload 7 /* expectation */
            invokespecial org.hibernate.engine.jdbc.batch.internal.BasicBatchKey.<init>:(Ljava/lang/String;Lorg/hibernate/jdbc/Expectation;)V
        19: .line 227
            putfield org.hibernate.persister.collection.OneToManyPersister.recreateBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
        20: .line 232
      StackMap locals: org.hibernate.persister.collection.OneToManyPersister org.hibernate.collection.spi.PersistentCollection java.util.Iterator java.io.Serializable int org.hibernate.engine.spi.SharedSessionContractImplementor int org.hibernate.jdbc.Expectation java.lang.Object int java.sql.PreparedStatement int int java.lang.String
      StackMap stack:
            aload 5 /* session */
        21: .line 233
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        22: .line 234
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.recreateBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getBatch:(Lorg/hibernate/engine/jdbc/batch/spi/BatchKey;)Lorg/hibernate/engine/jdbc/batch/spi/Batch;
        23: .line 235
            aload 13 /* sql */
            iload 11 /* callable */
            invokeinterface org.hibernate.engine.jdbc.batch.spi.Batch.getBatchStatement:(Ljava/lang/String;Z)Ljava/sql/PreparedStatement;
        24: .line 232
            astore 10 /* st */
        25: .line 236
            goto 31
        26: .line 238
      StackMap locals:
      StackMap stack:
            aload 5 /* session */
        27: .line 239
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        28: .line 240
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
        29: .line 241
            aload 13 /* sql */
            iload 11 /* callable */
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;Z)Ljava/sql/PreparedStatement;
        30: .line 238
            astore 10 /* st */
        31: .line 245
      StackMap locals:
      StackMap stack:
            iload 9 /* offset */
            aload 7 /* expectation */
            aload 10 /* st */
            invokeinterface org.hibernate.jdbc.Expectation.prepare:(Ljava/sql/PreparedStatement;)I
            iadd
            istore 9 /* offset */
        32: .line 246
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.hasIdentifier:Z
            ifeq 39
        33: .line 247
            aload 0 /* this */
        34: .line 248
            aload 10 /* st */
        35: .line 249
            aload 1 /* collection */
            aload 8 /* entry */
            iload 6 /* nextIndex */
            invokeinterface org.hibernate.collection.spi.PersistentCollection.getIdentifier:(Ljava/lang/Object;I)Ljava/lang/Object;
        36: .line 250
            iload 9 /* offset */
        37: .line 251
            aload 5 /* session */
        38: .line 247
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.writeIdentifier:(Ljava/sql/PreparedStatement;Ljava/lang/Object;ILorg/hibernate/engine/spi/SharedSessionContractImplementor;)I
            istore 9 /* offset */
        39: .line 254
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        40: .line 255
            aload 10 /* st */
        41: .line 256
            aload 1 /* collection */
            aload 8 /* entry */
            iload 6 /* nextIndex */
            aload 0 /* this */
            invokeinterface org.hibernate.collection.spi.PersistentCollection.getIndex:(Ljava/lang/Object;ILorg/hibernate/persister/collection/CollectionPersister;)Ljava/lang/Object;
        42: .line 257
            iload 9 /* offset */
        43: .line 258
            aload 5 /* session */
        44: .line 254
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.writeIndex:(Ljava/sql/PreparedStatement;Ljava/lang/Object;ILorg/hibernate/engine/spi/SharedSessionContractImplementor;)I
            istore 9 /* offset */
        45: .line 260
            aload 0 /* this */
            aload 10 /* st */
            aload 1 /* collection */
            aload 8 /* entry */
            invokeinterface org.hibernate.collection.spi.PersistentCollection.getElement:(Ljava/lang/Object;)Ljava/lang/Object;
            iload 9 /* offset */
            aload 5 /* session */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.writeElement:(Ljava/sql/PreparedStatement;Ljava/lang/Object;ILorg/hibernate/engine/spi/SharedSessionContractImplementor;)I
            istore 9 /* offset */
        46: .line 262
            iload 12 /* useBatch */
            ifeq 51
        47: .line 263
            aload 5 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        48: .line 264
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.recreateBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getBatch:(Lorg/hibernate/engine/jdbc/batch/spi/BatchKey;)Lorg/hibernate/engine/jdbc/batch/spi/Batch;
        49: .line 265
            invokeinterface org.hibernate.engine.jdbc.batch.spi.Batch.addToBatch:()V
        50: .line 266
            goto 66
        51: .line 268
      StackMap locals:
      StackMap stack:
            aload 7 /* expectation */
        52: .line 269
            aload 5 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        53: .line 270
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResultSetReturn:()Lorg/hibernate/engine/jdbc/spi/ResultSetReturn;
        54: .line 271
            aload 10 /* st */
            invokeinterface org.hibernate.engine.jdbc.spi.ResultSetReturn.executeUpdate:(Ljava/sql/PreparedStatement;)I
            aload 10 /* st */
            iconst_m1
        55: .line 268
            invokeinterface org.hibernate.jdbc.Expectation.verifyOutcome:(ILjava/sql/PreparedStatement;I)V
        56: .line 274
            goto 66
        57: .line 275
      StackMap locals:
      StackMap stack: java.sql.SQLException
            astore 14 /* sqle */
        start local 14 // java.sql.SQLException sqle
        58: .line 276
            iload 12 /* useBatch */
            ifeq 60
        59: .line 277
            aload 5 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.abortBatch:()V
        60: .line 279
      StackMap locals: java.sql.SQLException
      StackMap stack:
            aload 14 /* sqle */
            athrow
        end local 14 // java.sql.SQLException sqle
        61: .line 281
      StackMap locals: org.hibernate.persister.collection.OneToManyPersister org.hibernate.collection.spi.PersistentCollection java.util.Iterator java.io.Serializable int org.hibernate.engine.spi.SharedSessionContractImplementor int org.hibernate.jdbc.Expectation java.lang.Object int java.sql.PreparedStatement int int java.lang.String
      StackMap stack: java.lang.Throwable
            astore 15
        62: .line 282
            iload 12 /* useBatch */
            ifne 65
        63: .line 283
            aload 5 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 10 /* st */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        64: .line 284
            aload 5 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        65: .line 286
      StackMap locals: org.hibernate.persister.collection.OneToManyPersister org.hibernate.collection.spi.PersistentCollection java.util.Iterator java.io.Serializable int org.hibernate.engine.spi.SharedSessionContractImplementor int org.hibernate.jdbc.Expectation java.lang.Object int java.sql.PreparedStatement int int java.lang.String top java.lang.Throwable
      StackMap stack:
            aload 15
            athrow
        66: .line 282
      StackMap locals: org.hibernate.persister.collection.OneToManyPersister org.hibernate.collection.spi.PersistentCollection java.util.Iterator java.io.Serializable int org.hibernate.engine.spi.SharedSessionContractImplementor int org.hibernate.jdbc.Expectation java.lang.Object int java.sql.PreparedStatement int int java.lang.String
      StackMap stack:
            iload 12 /* useBatch */
            ifne 69
        67: .line 283
            aload 5 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 10 /* st */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        68: .line 284
            aload 5 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        end local 13 // java.lang.String sql
        end local 12 // boolean useBatch
        end local 11 // boolean callable
        end local 10 // java.sql.PreparedStatement st
        end local 9 // int offset
        69: .line 289
      StackMap locals: org.hibernate.persister.collection.OneToManyPersister org.hibernate.collection.spi.PersistentCollection java.util.Iterator java.io.Serializable int org.hibernate.engine.spi.SharedSessionContractImplementor int org.hibernate.jdbc.Expectation java.lang.Object
      StackMap stack:
            iinc 6 /* nextIndex */ 1
        end local 8 // java.lang.Object entry
        70: .line 215
      StackMap locals:
      StackMap stack:
            aload 2 /* entries */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        end local 7 // org.hibernate.jdbc.Expectation expectation
        end local 6 // int nextIndex
        71: .line 292
            goto 80
        72: .line 293
      StackMap locals: org.hibernate.persister.collection.OneToManyPersister org.hibernate.collection.spi.PersistentCollection java.util.Iterator java.io.Serializable int org.hibernate.engine.spi.SharedSessionContractImplementor
      StackMap stack: java.sql.SQLException
            astore 6 /* sqle */
        start local 6 // java.sql.SQLException sqle
        73: .line 294
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.sqlExceptionHelper:Lorg/hibernate/engine/jdbc/spi/SqlExceptionHelper;
        74: .line 295
            aload 6 /* sqle */
        75: .line 296
            new java.lang.StringBuilder
            dup
            ldc "could not update collection: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        76: .line 297
            aload 0 /* this */
            aload 1 /* collection */
            aload 3 /* id */
            aload 5 /* session */
            invokestatic org.hibernate.pretty.MessageHelper.collectionInfoString:(Lorg/hibernate/persister/collection/CollectionPersister;Lorg/hibernate/collection/spi/PersistentCollection;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        77: .line 296
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        78: .line 298
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getSQLUpdateRowString:()Ljava/lang/String;
        79: .line 294
            invokevirtual org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert:(Ljava/sql/SQLException;Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/JDBCException;
            athrow
        end local 6 // java.sql.SQLException sqle
        80: .line 302
      StackMap locals:
      StackMap stack:
            return
        end local 5 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 4 // boolean resetIndex
        end local 3 // java.io.Serializable id
        end local 2 // java.util.Iterator entries
        end local 1 // org.hibernate.collection.spi.PersistentCollection collection
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   81     0         this  Lorg/hibernate/persister/collection/OneToManyPersister;
            0   81     1   collection  Lorg/hibernate/collection/spi/PersistentCollection;
            0   81     2      entries  Ljava/util/Iterator;
            0   81     3           id  Ljava/io/Serializable;
            0   81     4   resetIndex  Z
            0   81     5      session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            5   71     6    nextIndex  I
            6   71     7  expectation  Lorg/hibernate/jdbc/Expectation;
            8   70     8        entry  Ljava/lang/Object;
           10   69     9       offset  I
           11   69    10           st  Ljava/sql/PreparedStatement;
           12   69    11     callable  Z
           13   69    12     useBatch  Z
           14   69    13          sql  Ljava/lang/String;
           58   61    14         sqle  Ljava/sql/SQLException;
           73   80     6         sqle  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          31    56      57  Class java.sql.SQLException
          31    61      61  any
           1    71      72  Class java.sql.SQLException
    MethodParameters:
            Name  Flags
      collection  
      entries     
      id          
      resetIndex  
      session     

  public boolean consumesEntityAlias();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
         0: .line 305
            iconst_1
            ireturn
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/collection/OneToManyPersister;

  public boolean consumesCollectionAlias();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
         0: .line 309
            iconst_1
            ireturn
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/collection/OneToManyPersister;

  public boolean isOneToMany();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
         0: .line 313
            iconst_1
            ireturn
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/collection/OneToManyPersister;

  public boolean isManyToMany();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
         0: .line 318
            iconst_0
            ireturn
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/collection/OneToManyPersister;

  protected int doUpdateRows(java.io.Serializable, org.hibernate.collection.spi.PersistentCollection, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Ljava/io/Serializable;Lorg/hibernate/collection/spi/PersistentCollection;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=16, args_size=4
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
        start local 1 // java.io.Serializable id
        start local 2 // org.hibernate.collection.spi.PersistentCollection collection
        start local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 331
            iconst_0
            istore 4 /* count */
        start local 4 // int count
         1: .line 332
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.isRowDeleteEnabled:()Z
            ifeq 63
         2: .line 333
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getDeleteCheckStyle:()Lorg/hibernate/engine/spi/ExecuteUpdateResultCheckStyle;
            invokestatic org.hibernate.jdbc.Expectations.appropriateExpectation:(Lorg/hibernate/engine/spi/ExecuteUpdateResultCheckStyle;)Lorg/hibernate/jdbc/Expectation;
            astore 5 /* deleteExpectation */
        start local 5 // org.hibernate.jdbc.Expectation deleteExpectation
         3: .line 334
            aload 5 /* deleteExpectation */
            invokeinterface org.hibernate.jdbc.Expectation.canBeBatched:()Z
            istore 6 /* useBatch */
        start local 6 // boolean useBatch
         4: .line 335
            iload 6 /* useBatch */
            ifeq 9
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.deleteRowBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
            ifnonnull 9
         5: .line 336
            aload 0 /* this */
            new org.hibernate.engine.jdbc.batch.internal.BasicBatchKey
            dup
         6: .line 337
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getRole:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "#DELETEROW"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 338
            aload 5 /* deleteExpectation */
            invokespecial org.hibernate.engine.jdbc.batch.internal.BasicBatchKey.<init>:(Ljava/lang/String;Lorg/hibernate/jdbc/Expectation;)V
         8: .line 336
            putfield org.hibernate.persister.collection.OneToManyPersister.deleteRowBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
         9: .line 341
      StackMap locals: int org.hibernate.jdbc.Expectation int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getSQLDeleteRowString:()Ljava/lang/String;
            astore 7 /* sql */
        start local 7 // java.lang.String sql
        10: .line 343
            aconst_null
            astore 8 /* st */
        start local 8 // java.sql.PreparedStatement st
        11: .line 346
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        12: .line 347
            aload 2 /* collection */
            aload 0 /* this */
            invokeinterface org.hibernate.collection.spi.PersistentCollection.entries:(Lorg/hibernate/persister/collection/CollectionPersister;)Ljava/util/Iterator;
            astore 10 /* entries */
        start local 10 // java.util.Iterator entries
        13: .line 348
            iconst_1
            istore 11 /* offset */
        start local 11 // int offset
        14: .line 349
            goto 49
        15: .line 350
      StackMap locals: org.hibernate.persister.collection.OneToManyPersister java.io.Serializable org.hibernate.collection.spi.PersistentCollection org.hibernate.engine.spi.SharedSessionContractImplementor int org.hibernate.jdbc.Expectation int java.lang.String java.sql.PreparedStatement int java.util.Iterator int
      StackMap stack:
            aload 10 /* entries */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 12 /* entry */
        start local 12 // java.lang.Object entry
        16: .line 351
            aload 2 /* collection */
        17: .line 352
            aload 12 /* entry */
        18: .line 353
            iload 9 /* i */
        19: .line 354
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.elementType:Lorg/hibernate/type/Type;
        20: .line 351
            invokeinterface org.hibernate.collection.spi.PersistentCollection.needsUpdating:(Ljava/lang/Object;ILorg/hibernate/type/Type;)Z
        21: .line 355
            ifeq 48
        22: .line 356
            iload 6 /* useBatch */
            ifeq 29
        23: .line 357
            aload 3 /* session */
        24: .line 358
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        25: .line 359
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.deleteRowBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getBatch:(Lorg/hibernate/engine/jdbc/batch/spi/BatchKey;)Lorg/hibernate/engine/jdbc/batch/spi/Batch;
        26: .line 360
            aload 7 /* sql */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.isDeleteCallable:()Z
            invokeinterface org.hibernate.engine.jdbc.batch.spi.Batch.getBatchStatement:(Ljava/lang/String;Z)Ljava/sql/PreparedStatement;
        27: .line 357
            astore 8 /* st */
        28: .line 361
            goto 34
        29: .line 363
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* session */
        30: .line 364
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        31: .line 365
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
        32: .line 366
            aload 7 /* sql */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.isDeleteCallable:()Z
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;Z)Ljava/sql/PreparedStatement;
        33: .line 363
            astore 8 /* st */
        34: .line 368
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 8 /* st */
            aload 1 /* id */
            iload 11 /* offset */
            aload 3 /* session */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.writeKey:(Ljava/sql/PreparedStatement;Ljava/io/Serializable;ILorg/hibernate/engine/spi/SharedSessionContractImplementor;)I
            istore 13 /* loc */
        start local 13 // int loc
        35: .line 369
            aload 0 /* this */
            aload 8 /* st */
            aload 2 /* collection */
            aload 12 /* entry */
            iload 9 /* i */
            invokeinterface org.hibernate.collection.spi.PersistentCollection.getSnapshotElement:(Ljava/lang/Object;I)Ljava/lang/Object;
            iload 13 /* loc */
            aload 3 /* session */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.writeElementToWhere:(Ljava/sql/PreparedStatement;Ljava/lang/Object;ILorg/hibernate/engine/spi/SharedSessionContractImplementor;)I
            pop
        36: .line 370
            iload 6 /* useBatch */
            ifeq 42
        37: .line 371
            aload 3 /* session */
        38: .line 372
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        39: .line 373
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.deleteRowBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getBatch:(Lorg/hibernate/engine/jdbc/batch/spi/BatchKey;)Lorg/hibernate/engine/jdbc/batch/spi/Batch;
        40: .line 374
            invokeinterface org.hibernate.engine.jdbc.batch.spi.Batch.addToBatch:()V
        41: .line 375
            goto 47
        42: .line 377
      StackMap locals: int
      StackMap stack:
            aload 5 /* deleteExpectation */
        43: .line 378
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        44: .line 379
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResultSetReturn:()Lorg/hibernate/engine/jdbc/spi/ResultSetReturn;
        45: .line 380
            aload 8 /* st */
            invokeinterface org.hibernate.engine.jdbc.spi.ResultSetReturn.executeUpdate:(Ljava/sql/PreparedStatement;)I
            aload 8 /* st */
            iconst_m1
        46: .line 377
            invokeinterface org.hibernate.jdbc.Expectation.verifyOutcome:(ILjava/sql/PreparedStatement;I)V
        47: .line 383
      StackMap locals:
      StackMap stack:
            iinc 4 /* count */ 1
        end local 13 // int loc
        48: .line 385
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
        end local 12 // java.lang.Object entry
        49: .line 349
      StackMap locals:
      StackMap stack:
            aload 10 /* entries */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        end local 11 // int offset
        end local 10 // java.util.Iterator entries
        end local 9 // int i
        50: .line 387
            goto 60
        51: .line 388
      StackMap locals: org.hibernate.persister.collection.OneToManyPersister java.io.Serializable org.hibernate.collection.spi.PersistentCollection org.hibernate.engine.spi.SharedSessionContractImplementor int org.hibernate.jdbc.Expectation int java.lang.String java.sql.PreparedStatement
      StackMap stack: java.sql.SQLException
            astore 9 /* e */
        start local 9 // java.sql.SQLException e
        52: .line 389
            iload 6 /* useBatch */
            ifeq 54
        53: .line 390
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.abortBatch:()V
        54: .line 392
      StackMap locals: java.sql.SQLException
      StackMap stack:
            aload 9 /* e */
            athrow
        end local 9 // java.sql.SQLException e
        55: .line 394
      StackMap locals: org.hibernate.persister.collection.OneToManyPersister java.io.Serializable org.hibernate.collection.spi.PersistentCollection org.hibernate.engine.spi.SharedSessionContractImplementor int org.hibernate.jdbc.Expectation int java.lang.String java.sql.PreparedStatement
      StackMap stack: java.lang.Throwable
            astore 14
        56: .line 395
            iload 6 /* useBatch */
            ifne 59
        57: .line 396
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 8 /* st */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        58: .line 397
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        59: .line 399
      StackMap locals: org.hibernate.persister.collection.OneToManyPersister java.io.Serializable org.hibernate.collection.spi.PersistentCollection org.hibernate.engine.spi.SharedSessionContractImplementor int org.hibernate.jdbc.Expectation int java.lang.String java.sql.PreparedStatement top top top top top java.lang.Throwable
      StackMap stack:
            aload 14
            athrow
        60: .line 395
      StackMap locals: org.hibernate.persister.collection.OneToManyPersister java.io.Serializable org.hibernate.collection.spi.PersistentCollection org.hibernate.engine.spi.SharedSessionContractImplementor int org.hibernate.jdbc.Expectation int java.lang.String java.sql.PreparedStatement
      StackMap stack:
            iload 6 /* useBatch */
            ifne 63
        61: .line 396
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 8 /* st */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        62: .line 397
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        end local 8 // java.sql.PreparedStatement st
        end local 7 // java.lang.String sql
        end local 6 // boolean useBatch
        end local 5 // org.hibernate.jdbc.Expectation deleteExpectation
        63: .line 402
      StackMap locals: org.hibernate.persister.collection.OneToManyPersister java.io.Serializable org.hibernate.collection.spi.PersistentCollection org.hibernate.engine.spi.SharedSessionContractImplementor int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.isRowInsertEnabled:()Z
            ifeq 121
        64: .line 403
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getInsertCheckStyle:()Lorg/hibernate/engine/spi/ExecuteUpdateResultCheckStyle;
            invokestatic org.hibernate.jdbc.Expectations.appropriateExpectation:(Lorg/hibernate/engine/spi/ExecuteUpdateResultCheckStyle;)Lorg/hibernate/jdbc/Expectation;
            astore 5 /* insertExpectation */
        start local 5 // org.hibernate.jdbc.Expectation insertExpectation
        65: .line 404
            aload 5 /* insertExpectation */
            invokeinterface org.hibernate.jdbc.Expectation.canBeBatched:()Z
            istore 6 /* useBatch */
        start local 6 // boolean useBatch
        66: .line 405
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.isInsertCallable:()Z
            istore 7 /* callable */
        start local 7 // boolean callable
        67: .line 406
            iload 6 /* useBatch */
            ifeq 72
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.insertRowBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
            ifnonnull 72
        68: .line 407
            aload 0 /* this */
            new org.hibernate.engine.jdbc.batch.internal.BasicBatchKey
            dup
        69: .line 408
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getRole:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "#INSERTROW"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        70: .line 409
            aload 5 /* insertExpectation */
            invokespecial org.hibernate.engine.jdbc.batch.internal.BasicBatchKey.<init>:(Ljava/lang/String;Lorg/hibernate/jdbc/Expectation;)V
        71: .line 407
            putfield org.hibernate.persister.collection.OneToManyPersister.insertRowBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
        72: .line 412
      StackMap locals: org.hibernate.jdbc.Expectation int int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getSQLInsertRowString:()Ljava/lang/String;
            astore 8 /* sql */
        start local 8 // java.lang.String sql
        73: .line 414
            aconst_null
            astore 9 /* st */
        start local 9 // java.sql.PreparedStatement st
        74: .line 417
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        75: .line 418
            aload 2 /* collection */
            aload 0 /* this */
            invokeinterface org.hibernate.collection.spi.PersistentCollection.entries:(Lorg/hibernate/persister/collection/CollectionPersister;)Ljava/util/Iterator;
            astore 11 /* entries */
        start local 11 // java.util.Iterator entries
        76: .line 419
            goto 107
        77: .line 420
      StackMap locals: org.hibernate.persister.collection.OneToManyPersister java.io.Serializable org.hibernate.collection.spi.PersistentCollection org.hibernate.engine.spi.SharedSessionContractImplementor int org.hibernate.jdbc.Expectation int int java.lang.String java.sql.PreparedStatement int java.util.Iterator
      StackMap stack:
            aload 11 /* entries */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 12 /* entry */
        start local 12 // java.lang.Object entry
        78: .line 421
            iconst_1
            istore 13 /* offset */
        start local 13 // int offset
        79: .line 422
            aload 2 /* collection */
            aload 12 /* entry */
            iload 10 /* i */
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.elementType:Lorg/hibernate/type/Type;
            invokeinterface org.hibernate.collection.spi.PersistentCollection.needsUpdating:(Ljava/lang/Object;ILorg/hibernate/type/Type;)Z
            ifeq 106
        80: .line 423
            iload 6 /* useBatch */
            ifeq 87
        81: .line 424
            aload 3 /* session */
        82: .line 425
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        83: .line 426
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.insertRowBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getBatch:(Lorg/hibernate/engine/jdbc/batch/spi/BatchKey;)Lorg/hibernate/engine/jdbc/batch/spi/Batch;
        84: .line 427
            aload 8 /* sql */
            iload 7 /* callable */
            invokeinterface org.hibernate.engine.jdbc.batch.spi.Batch.getBatchStatement:(Ljava/lang/String;Z)Ljava/sql/PreparedStatement;
        85: .line 424
            astore 9 /* st */
        86: .line 428
            goto 92
        87: .line 430
      StackMap locals: java.lang.Object int
      StackMap stack:
            aload 3 /* session */
        88: .line 431
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        89: .line 432
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
        90: .line 433
            aload 8 /* sql */
            iload 7 /* callable */
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;Z)Ljava/sql/PreparedStatement;
        91: .line 430
            astore 9 /* st */
        92: .line 436
      StackMap locals:
      StackMap stack:
            iload 13 /* offset */
            aload 5 /* insertExpectation */
            aload 9 /* st */
            invokeinterface org.hibernate.jdbc.Expectation.prepare:(Ljava/sql/PreparedStatement;)I
            iadd
            istore 13 /* offset */
        93: .line 438
            aload 0 /* this */
            aload 9 /* st */
            aload 1 /* id */
            iload 13 /* offset */
            aload 3 /* session */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.writeKey:(Ljava/sql/PreparedStatement;Ljava/io/Serializable;ILorg/hibernate/engine/spi/SharedSessionContractImplementor;)I
            istore 14 /* loc */
        start local 14 // int loc
        94: .line 439
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.hasIndex:Z
            ifeq 96
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.indexContainsFormula:Z
            ifne 96
        95: .line 440
            aload 0 /* this */
            aload 9 /* st */
            aload 2 /* collection */
            aload 12 /* entry */
            iload 10 /* i */
            aload 0 /* this */
            invokeinterface org.hibernate.collection.spi.PersistentCollection.getIndex:(Ljava/lang/Object;ILorg/hibernate/persister/collection/CollectionPersister;)Ljava/lang/Object;
            iload 14 /* loc */
            aload 3 /* session */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.writeIndexToWhere:(Ljava/sql/PreparedStatement;Ljava/lang/Object;ILorg/hibernate/engine/spi/SharedSessionContractImplementor;)I
            istore 14 /* loc */
        96: .line 443
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 9 /* st */
            aload 2 /* collection */
            aload 12 /* entry */
            invokeinterface org.hibernate.collection.spi.PersistentCollection.getElement:(Ljava/lang/Object;)Ljava/lang/Object;
            iload 14 /* loc */
            aload 3 /* session */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.writeElementToWhere:(Ljava/sql/PreparedStatement;Ljava/lang/Object;ILorg/hibernate/engine/spi/SharedSessionContractImplementor;)I
            pop
        97: .line 445
            iload 6 /* useBatch */
            ifeq 100
        98: .line 446
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.insertRowBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getBatch:(Lorg/hibernate/engine/jdbc/batch/spi/BatchKey;)Lorg/hibernate/engine/jdbc/batch/spi/Batch;
            invokeinterface org.hibernate.engine.jdbc.batch.spi.Batch.addToBatch:()V
        99: .line 447
            goto 105
       100: .line 449
      StackMap locals:
      StackMap stack:
            aload 5 /* insertExpectation */
       101: .line 450
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
       102: .line 451
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResultSetReturn:()Lorg/hibernate/engine/jdbc/spi/ResultSetReturn;
       103: .line 452
            aload 9 /* st */
            invokeinterface org.hibernate.engine.jdbc.spi.ResultSetReturn.executeUpdate:(Ljava/sql/PreparedStatement;)I
            aload 9 /* st */
            iconst_m1
       104: .line 449
            invokeinterface org.hibernate.jdbc.Expectation.verifyOutcome:(ILjava/sql/PreparedStatement;I)V
       105: .line 455
      StackMap locals:
      StackMap stack:
            iinc 4 /* count */ 1
        end local 14 // int loc
       106: .line 457
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
        end local 13 // int offset
        end local 12 // java.lang.Object entry
       107: .line 419
      StackMap locals:
      StackMap stack:
            aload 11 /* entries */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 77
        end local 11 // java.util.Iterator entries
        end local 10 // int i
       108: .line 459
            goto 118
       109: .line 460
      StackMap locals: org.hibernate.persister.collection.OneToManyPersister java.io.Serializable org.hibernate.collection.spi.PersistentCollection org.hibernate.engine.spi.SharedSessionContractImplementor int org.hibernate.jdbc.Expectation int int java.lang.String java.sql.PreparedStatement
      StackMap stack: java.sql.SQLException
            astore 10 /* sqle */
        start local 10 // java.sql.SQLException sqle
       110: .line 461
            iload 6 /* useBatch */
            ifeq 112
       111: .line 462
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.abortBatch:()V
       112: .line 464
      StackMap locals: java.sql.SQLException
      StackMap stack:
            aload 10 /* sqle */
            athrow
        end local 10 // java.sql.SQLException sqle
       113: .line 466
      StackMap locals: org.hibernate.persister.collection.OneToManyPersister java.io.Serializable org.hibernate.collection.spi.PersistentCollection org.hibernate.engine.spi.SharedSessionContractImplementor int org.hibernate.jdbc.Expectation int int java.lang.String java.sql.PreparedStatement
      StackMap stack: java.lang.Throwable
            astore 15
       114: .line 467
            iload 6 /* useBatch */
            ifne 117
       115: .line 468
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 9 /* st */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
       116: .line 469
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
       117: .line 471
      StackMap locals: org.hibernate.persister.collection.OneToManyPersister java.io.Serializable org.hibernate.collection.spi.PersistentCollection org.hibernate.engine.spi.SharedSessionContractImplementor int org.hibernate.jdbc.Expectation int int java.lang.String java.sql.PreparedStatement top top top top top java.lang.Throwable
      StackMap stack:
            aload 15
            athrow
       118: .line 467
      StackMap locals: org.hibernate.persister.collection.OneToManyPersister java.io.Serializable org.hibernate.collection.spi.PersistentCollection org.hibernate.engine.spi.SharedSessionContractImplementor int org.hibernate.jdbc.Expectation int int java.lang.String java.sql.PreparedStatement
      StackMap stack:
            iload 6 /* useBatch */
            ifne 121
       119: .line 468
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 9 /* st */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
       120: .line 469
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        end local 9 // java.sql.PreparedStatement st
        end local 8 // java.lang.String sql
        end local 7 // boolean callable
        end local 6 // boolean useBatch
        end local 5 // org.hibernate.jdbc.Expectation insertExpectation
       121: .line 474
      StackMap locals: org.hibernate.persister.collection.OneToManyPersister java.io.Serializable org.hibernate.collection.spi.PersistentCollection org.hibernate.engine.spi.SharedSessionContractImplementor int
      StackMap stack:
            iload 4 /* count */
       122: ireturn
        end local 4 // int count
       123: .line 476
      StackMap locals: org.hibernate.persister.collection.OneToManyPersister java.io.Serializable org.hibernate.collection.spi.PersistentCollection org.hibernate.engine.spi.SharedSessionContractImplementor
      StackMap stack: java.sql.SQLException
            astore 4 /* sqle */
        start local 4 // java.sql.SQLException sqle
       124: .line 477
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSQLExceptionHelper:()Lorg/hibernate/engine/jdbc/spi/SqlExceptionHelper;
       125: .line 478
            aload 4 /* sqle */
       126: .line 479
            new java.lang.StringBuilder
            dup
            ldc "could not update collection rows: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       127: .line 480
            aload 0 /* this */
            aload 2 /* collection */
            aload 1 /* id */
            aload 3 /* session */
            invokestatic org.hibernate.pretty.MessageHelper.collectionInfoString:(Lorg/hibernate/persister/collection/CollectionPersister;Lorg/hibernate/collection/spi/PersistentCollection;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       128: .line 479
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       129: .line 481
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getSQLInsertRowString:()Ljava/lang/String;
       130: .line 477
            invokevirtual org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert:(Ljava/sql/SQLException;Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/JDBCException;
            athrow
        end local 4 // java.sql.SQLException sqle
        end local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 2 // org.hibernate.collection.spi.PersistentCollection collection
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0  131     0               this  Lorg/hibernate/persister/collection/OneToManyPersister;
            0  131     1                 id  Ljava/io/Serializable;
            0  131     2         collection  Lorg/hibernate/collection/spi/PersistentCollection;
            0  131     3            session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            1  123     4              count  I
            3   63     5  deleteExpectation  Lorg/hibernate/jdbc/Expectation;
            4   63     6           useBatch  Z
           10   63     7                sql  Ljava/lang/String;
           11   63     8                 st  Ljava/sql/PreparedStatement;
           12   50     9                  i  I
           13   50    10            entries  Ljava/util/Iterator;
           14   50    11             offset  I
           16   49    12              entry  Ljava/lang/Object;
           35   48    13                loc  I
           52   55     9                  e  Ljava/sql/SQLException;
           65  121     5  insertExpectation  Lorg/hibernate/jdbc/Expectation;
           66  121     6           useBatch  Z
           67  121     7           callable  Z
           73  121     8                sql  Ljava/lang/String;
           74  121     9                 st  Ljava/sql/PreparedStatement;
           75  108    10                  i  I
           76  108    11            entries  Ljava/util/Iterator;
           78  107    12              entry  Ljava/lang/Object;
           79  107    13             offset  I
           94  106    14                loc  I
          110  113    10               sqle  Ljava/sql/SQLException;
          124  131     4               sqle  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          11    50      51  Class java.sql.SQLException
          11    55      55  any
          74   108     109  Class java.sql.SQLException
          74   113     113  any
           0   122     123  Class java.sql.SQLException
    MethodParameters:
            Name  Flags
      id          
      collection  
      session     

  public java.lang.String selectFragment(org.hibernate.persister.entity.Joinable, java.lang.String, java.lang.String, java.lang.String, java.lang.String, boolean);
    descriptor: (Lorg/hibernate/persister/entity/Joinable;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=9, args_size=7
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
        start local 1 // org.hibernate.persister.entity.Joinable rhs
        start local 2 // java.lang.String rhsAlias
        start local 3 // java.lang.String lhsAlias
        start local 4 // java.lang.String entitySuffix
        start local 5 // java.lang.String collectionSuffix
        start local 6 // boolean includeCollectionColumns
         0: .line 493
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 7 /* buf */
        start local 7 // java.lang.StringBuilder buf
         1: .line 494
            iload 6 /* includeCollectionColumns */
            ifeq 4
         2: .line 496
            aload 7 /* buf */
            aload 0 /* this */
            aload 3 /* lhsAlias */
            aload 5 /* collectionSuffix */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.selectFragment:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 497
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 499
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getElementPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            checkcast org.hibernate.persister.entity.OuterJoinLoadable
            astore 8 /* ojl */
        start local 8 // org.hibernate.persister.entity.OuterJoinLoadable ojl
         5: .line 500
            aload 7 /* buf */
            aload 8 /* ojl */
            aload 3 /* lhsAlias */
            aload 4 /* entitySuffix */
            invokeinterface org.hibernate.persister.entity.OuterJoinLoadable.selectFragment:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 501
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 500
            areturn
        end local 8 // org.hibernate.persister.entity.OuterJoinLoadable ojl
        end local 7 // java.lang.StringBuilder buf
        end local 6 // boolean includeCollectionColumns
        end local 5 // java.lang.String collectionSuffix
        end local 4 // java.lang.String entitySuffix
        end local 3 // java.lang.String lhsAlias
        end local 2 // java.lang.String rhsAlias
        end local 1 // org.hibernate.persister.entity.Joinable rhs
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    8     0                      this  Lorg/hibernate/persister/collection/OneToManyPersister;
            0    8     1                       rhs  Lorg/hibernate/persister/entity/Joinable;
            0    8     2                  rhsAlias  Ljava/lang/String;
            0    8     3                  lhsAlias  Ljava/lang/String;
            0    8     4              entitySuffix  Ljava/lang/String;
            0    8     5          collectionSuffix  Ljava/lang/String;
            0    8     6  includeCollectionColumns  Z
            1    8     7                       buf  Ljava/lang/StringBuilder;
            5    8     8                       ojl  Lorg/hibernate/persister/entity/OuterJoinLoadable;
    MethodParameters:
                          Name  Flags
      rhs                       
      rhsAlias                  
      lhsAlias                  
      entitySuffix              
      collectionSuffix          
      includeCollectionColumns  

  protected org.hibernate.loader.collection.CollectionInitializer createCollectionInitializer(org.hibernate.engine.spi.LoadQueryInfluencers);
    descriptor: (Lorg/hibernate/engine/spi/LoadQueryInfluencers;)Lorg/hibernate/loader/collection/CollectionInitializer;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
        start local 1 // org.hibernate.engine.spi.LoadQueryInfluencers loadQueryInfluencers
         0: .line 512
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.loader.collection.BatchingCollectionInitializerBuilder.getBuilder:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Lorg/hibernate/loader/collection/BatchingCollectionInitializerBuilder;
         1: .line 513
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.collection.OneToManyPersister.batchSize:I
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aload 1 /* loadQueryInfluencers */
            invokevirtual org.hibernate.loader.collection.BatchingCollectionInitializerBuilder.createBatchingOneToManyInitializer:(Lorg/hibernate/persister/collection/QueryableCollection;ILorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)Lorg/hibernate/loader/collection/CollectionInitializer;
         2: .line 512
            areturn
        end local 1 // org.hibernate.engine.spi.LoadQueryInfluencers loadQueryInfluencers
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    3     0                  this  Lorg/hibernate/persister/collection/OneToManyPersister;
            0    3     1  loadQueryInfluencers  Lorg/hibernate/engine/spi/LoadQueryInfluencers;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
                      Name  Flags
      loadQueryInfluencers  

  public java.lang.String fromJoinFragment(java.lang.String, boolean, boolean);
    descriptor: (Ljava/lang/String;ZZ)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
        start local 1 // java.lang.String alias
        start local 2 // boolean innerJoin
        start local 3 // boolean includeSubclasses
         0: .line 518
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getElementPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            checkcast org.hibernate.persister.entity.Joinable
            aload 1 /* alias */
            iload 2 /* innerJoin */
            iload 3 /* includeSubclasses */
            invokeinterface org.hibernate.persister.entity.Joinable.fromJoinFragment:(Ljava/lang/String;ZZ)Ljava/lang/String;
            areturn
        end local 3 // boolean includeSubclasses
        end local 2 // boolean innerJoin
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0               this  Lorg/hibernate/persister/collection/OneToManyPersister;
            0    1     1              alias  Ljava/lang/String;
            0    1     2          innerJoin  Z
            0    1     3  includeSubclasses  Z
    MethodParameters:
                   Name  Flags
      alias              
      innerJoin          
      includeSubclasses  

  public java.lang.String fromJoinFragment(java.lang.String, boolean, boolean, java.util.Set<java.lang.String>);
    descriptor: (Ljava/lang/String;ZZLjava/util/Set;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
        start local 1 // java.lang.String alias
        start local 2 // boolean innerJoin
        start local 3 // boolean includeSubclasses
        start local 4 // java.util.Set treatAsDeclarations
         0: .line 527
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getElementPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            checkcast org.hibernate.persister.entity.Joinable
         1: .line 528
            aload 1 /* alias */
         2: .line 529
            iload 2 /* innerJoin */
         3: .line 530
            iload 3 /* includeSubclasses */
         4: .line 531
            aload 4 /* treatAsDeclarations */
         5: .line 527
            invokeinterface org.hibernate.persister.entity.Joinable.fromJoinFragment:(Ljava/lang/String;ZZLjava/util/Set;)Ljava/lang/String;
            areturn
        end local 4 // java.util.Set treatAsDeclarations
        end local 3 // boolean includeSubclasses
        end local 2 // boolean innerJoin
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    6     0                 this  Lorg/hibernate/persister/collection/OneToManyPersister;
            0    6     1                alias  Ljava/lang/String;
            0    6     2            innerJoin  Z
            0    6     3    includeSubclasses  Z
            0    6     4  treatAsDeclarations  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Ljava/lang/String;ZZLjava/util/Set<Ljava/lang/String;>;)Ljava/lang/String;
    MethodParameters:
                     Name  Flags
      alias                
      innerJoin            
      includeSubclasses    
      treatAsDeclarations  

  public java.lang.String whereJoinFragment(java.lang.String, boolean, boolean);
    descriptor: (Ljava/lang/String;ZZ)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
        start local 1 // java.lang.String alias
        start local 2 // boolean innerJoin
        start local 3 // boolean includeSubclasses
         0: .line 537
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getElementPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            checkcast org.hibernate.persister.entity.Joinable
            aload 1 /* alias */
            iload 2 /* innerJoin */
            iload 3 /* includeSubclasses */
            invokeinterface org.hibernate.persister.entity.Joinable.whereJoinFragment:(Ljava/lang/String;ZZ)Ljava/lang/String;
            areturn
        end local 3 // boolean includeSubclasses
        end local 2 // boolean innerJoin
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0               this  Lorg/hibernate/persister/collection/OneToManyPersister;
            0    1     1              alias  Ljava/lang/String;
            0    1     2          innerJoin  Z
            0    1     3  includeSubclasses  Z
    MethodParameters:
                   Name  Flags
      alias              
      innerJoin          
      includeSubclasses  

  public java.lang.String whereJoinFragment(java.lang.String, boolean, boolean, java.util.Set<java.lang.String>);
    descriptor: (Ljava/lang/String;ZZLjava/util/Set;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
        start local 1 // java.lang.String alias
        start local 2 // boolean innerJoin
        start local 3 // boolean includeSubclasses
        start local 4 // java.util.Set treatAsDeclarations
         0: .line 546
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getElementPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            checkcast org.hibernate.persister.entity.Joinable
         1: .line 547
            aload 1 /* alias */
         2: .line 548
            iload 2 /* innerJoin */
         3: .line 549
            iload 3 /* includeSubclasses */
         4: .line 550
            aload 4 /* treatAsDeclarations */
         5: .line 546
            invokeinterface org.hibernate.persister.entity.Joinable.whereJoinFragment:(Ljava/lang/String;ZZLjava/util/Set;)Ljava/lang/String;
            areturn
        end local 4 // java.util.Set treatAsDeclarations
        end local 3 // boolean includeSubclasses
        end local 2 // boolean innerJoin
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    6     0                 this  Lorg/hibernate/persister/collection/OneToManyPersister;
            0    6     1                alias  Ljava/lang/String;
            0    6     2            innerJoin  Z
            0    6     3    includeSubclasses  Z
            0    6     4  treatAsDeclarations  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Ljava/lang/String;ZZLjava/util/Set<Ljava/lang/String;>;)Ljava/lang/String;
    MethodParameters:
                     Name  Flags
      alias                
      innerJoin            
      includeSubclasses    
      treatAsDeclarations  

  public java.lang.String getTableName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
         0: .line 556
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getElementPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            checkcast org.hibernate.persister.entity.Joinable
            invokeinterface org.hibernate.persister.entity.Joinable.getTableName:()Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/collection/OneToManyPersister;

  public java.lang.String filterFragment(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
        start local 1 // java.lang.String alias
         0: .line 561
            aload 0 /* this */
            aload 1 /* alias */
            invokespecial org.hibernate.persister.collection.AbstractCollectionPersister.filterFragment:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* result */
        start local 2 // java.lang.String result
         1: .line 562
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getElementPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            instanceof org.hibernate.persister.entity.Joinable
            ifeq 3
         2: .line 563
            new java.lang.StringBuilder
            dup
            aload 2 /* result */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getElementPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            checkcast org.hibernate.persister.entity.Joinable
            aload 1 /* alias */
            invokeinterface org.hibernate.persister.entity.Joinable.oneToManyFilterFragment:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* result */
         3: .line 565
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 2 // java.lang.String result
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/hibernate/persister/collection/OneToManyPersister;
            0    4     1   alias  Ljava/lang/String;
            1    4     2  result  Ljava/lang/String;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
       Name  Flags
      alias  

  protected java.lang.String filterFragment(java.lang.String, java.util.Set<java.lang.String>);
    descriptor: (Ljava/lang/String;Ljava/util/Set;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
        start local 1 // java.lang.String alias
        start local 2 // java.util.Set treatAsDeclarations
         0: .line 571
            aload 0 /* this */
            aload 1 /* alias */
            invokespecial org.hibernate.persister.collection.AbstractCollectionPersister.filterFragment:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* result */
        start local 3 // java.lang.String result
         1: .line 572
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getElementPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            instanceof org.hibernate.persister.entity.Joinable
            ifeq 3
         2: .line 573
            new java.lang.StringBuilder
            dup
            aload 3 /* result */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getElementPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            checkcast org.hibernate.persister.entity.Joinable
            aload 1 /* alias */
            aload 2 /* treatAsDeclarations */
            invokeinterface org.hibernate.persister.entity.Joinable.oneToManyFilterFragment:(Ljava/lang/String;Ljava/util/Set;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* result */
         3: .line 575
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // java.lang.String result
        end local 2 // java.util.Set treatAsDeclarations
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    4     0                 this  Lorg/hibernate/persister/collection/OneToManyPersister;
            0    4     1                alias  Ljava/lang/String;
            0    4     2  treatAsDeclarations  Ljava/util/Set<Ljava/lang/String;>;
            1    4     3               result  Ljava/lang/String;
    Exceptions:
      throws org.hibernate.MappingException
    Signature: (Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;)Ljava/lang/String;
    MethodParameters:
                     Name  Flags
      alias                
      treatAsDeclarations  

  protected org.hibernate.loader.collection.CollectionInitializer createSubselectInitializer(org.hibernate.engine.spi.SubselectFetch, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Lorg/hibernate/engine/spi/SubselectFetch;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Lorg/hibernate/loader/collection/CollectionInitializer;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=9, locals=3, args_size=3
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
        start local 1 // org.hibernate.engine.spi.SubselectFetch subselect
        start local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 580
            new org.hibernate.loader.collection.SubselectOneToManyLoader
            dup
         1: .line 581
            aload 0 /* this */
         2: .line 582
            aload 1 /* subselect */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getCollectionType:()Lorg/hibernate/type/CollectionType;
            invokevirtual org.hibernate.type.CollectionType.getLHSPropertyName:()Ljava/lang/String;
            invokevirtual org.hibernate.engine.spi.SubselectFetch.toSubselectString:(Ljava/lang/String;)Ljava/lang/String;
         3: .line 583
            aload 1 /* subselect */
            invokevirtual org.hibernate.engine.spi.SubselectFetch.getResult:()Ljava/util/Set;
         4: .line 584
            aload 1 /* subselect */
            invokevirtual org.hibernate.engine.spi.SubselectFetch.getQueryParameters:()Lorg/hibernate/engine/spi/QueryParameters;
         5: .line 585
            aload 1 /* subselect */
            invokevirtual org.hibernate.engine.spi.SubselectFetch.getNamedParameterLocMap:()Ljava/util/Map;
         6: .line 586
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
         7: .line 587
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
         8: .line 580
            invokespecial org.hibernate.loader.collection.SubselectOneToManyLoader.<init>:(Lorg/hibernate/persister/collection/QueryableCollection;Ljava/lang/String;Ljava/util/Collection;Lorg/hibernate/engine/spi/QueryParameters;Ljava/util/Map;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)V
            areturn
        end local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 1 // org.hibernate.engine.spi.SubselectFetch subselect
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lorg/hibernate/persister/collection/OneToManyPersister;
            0    9     1  subselect  Lorg/hibernate/engine/spi/SubselectFetch;
            0    9     2    session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
    MethodParameters:
           Name  Flags
      subselect  
      session    

  public java.lang.Object getElementByIndex(java.io.Serializable, java.lang.Object, org.hibernate.engine.spi.SharedSessionContractImplementor, java.lang.Object);
    descriptor: (Ljava/io/Serializable;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
        start local 1 // java.io.Serializable key
        start local 2 // java.lang.Object index
        start local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        start local 4 // java.lang.Object owner
         0: .line 593
            new org.hibernate.loader.entity.CollectionElementLoader
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokespecial org.hibernate.loader.entity.CollectionElementLoader.<init>:(Lorg/hibernate/persister/collection/QueryableCollection;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)V
         1: .line 594
            aload 3 /* session */
            aload 1 /* key */
            aload 0 /* this */
            aload 2 /* index */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.incrementIndexByBase:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual org.hibernate.loader.entity.CollectionElementLoader.loadElement:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
         2: .line 593
            areturn
        end local 4 // java.lang.Object owner
        end local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 2 // java.lang.Object index
        end local 1 // java.io.Serializable key
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/hibernate/persister/collection/OneToManyPersister;
            0    3     1      key  Ljava/io/Serializable;
            0    3     2    index  Ljava/lang/Object;
            0    3     3  session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            0    3     4    owner  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      key      
      index    
      session  
      owner    

  public org.hibernate.internal.FilterAliasGenerator getFilterAliasGenerator(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/internal/FilterAliasGenerator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.collection.OneToManyPersister this
        start local 1 // java.lang.String rootAlias
         0: .line 599
            aload 0 /* this */
            invokevirtual org.hibernate.persister.collection.OneToManyPersister.getElementPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            aload 1 /* rootAlias */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getFilterAliasGenerator:(Ljava/lang/String;)Lorg/hibernate/internal/FilterAliasGenerator;
            areturn
        end local 1 // java.lang.String rootAlias
        end local 0 // org.hibernate.persister.collection.OneToManyPersister this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/hibernate/persister/collection/OneToManyPersister;
            0    1     1  rootAlias  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      rootAlias  
}
SourceFile: "OneToManyPersister.java"