public class org.hibernate.hql.spi.TableBasedDeleteHandlerImpl extends org.hibernate.hql.spi.AbstractTableBasedBulkIdHandler implements org.hibernate.hql.spi.MultiTableBulkIdStrategy$DeleteHandler
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.hql.spi.TableBasedDeleteHandlerImpl
  super_class: org.hibernate.hql.spi.AbstractTableBasedBulkIdHandler
{
  private static final org.jboss.logging.Logger log;
    descriptor: Lorg/jboss/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

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

  private final java.util.List<org.hibernate.param.ParameterSpecification> idSelectParameterSpecifications;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/hibernate/param/ParameterSpecification;>;

  private final java.util.List<java.lang.String> deletes;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/lang/String;>;

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

  public void <init>(org.hibernate.engine.spi.SessionFactoryImplementor, org.hibernate.hql.internal.ast.HqlSqlWalker);
    descriptor: (Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/hql/internal/ast/HqlSqlWalker;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.hibernate.hql.spi.TableBasedDeleteHandlerImpl this
        start local 1 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        start local 2 // org.hibernate.hql.internal.ast.HqlSqlWalker walker
         0: .line 62
            aload 0 /* this */
            aload 1 /* factory */
            aload 2 /* walker */
            aconst_null
            aconst_null
            invokespecial org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.<init>:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/hql/internal/ast/HqlSqlWalker;Ljava/lang/String;Ljava/lang/String;)V
         1: .line 63
            return
        end local 2 // org.hibernate.hql.internal.ast.HqlSqlWalker walker
        end local 1 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 0 // org.hibernate.hql.spi.TableBasedDeleteHandlerImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/hibernate/hql/spi/TableBasedDeleteHandlerImpl;
            0    2     1  factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            0    2     2   walker  Lorg/hibernate/hql/internal/ast/HqlSqlWalker;
    MethodParameters:
         Name  Flags
      factory  
      walker   

  public void <init>(org.hibernate.engine.spi.SessionFactoryImplementor, org.hibernate.hql.internal.ast.HqlSqlWalker, java.lang.String, java.lang.String);
    descriptor: (Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/hql/internal/ast/HqlSqlWalker;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=16, args_size=5
        start local 0 // org.hibernate.hql.spi.TableBasedDeleteHandlerImpl this
        start local 1 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        start local 2 // org.hibernate.hql.internal.ast.HqlSqlWalker walker
        start local 3 // java.lang.String catalog
        start local 4 // java.lang.String schema
         0: .line 70
            aload 0 /* this */
            aload 1 /* factory */
            aload 2 /* walker */
            aload 3 /* catalog */
            aload 4 /* schema */
            invokespecial org.hibernate.hql.spi.AbstractTableBasedBulkIdHandler.<init>:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/hql/internal/ast/HqlSqlWalker;Ljava/lang/String;Ljava/lang/String;)V
         1: .line 72
            aload 2 /* walker */
            invokevirtual org.hibernate.hql.internal.ast.HqlSqlWalker.getAST:()Lantlr/collections/AST;
            checkcast org.hibernate.hql.internal.ast.tree.DeleteStatement
            astore 5 /* deleteStatement */
        start local 5 // org.hibernate.hql.internal.ast.tree.DeleteStatement deleteStatement
         2: .line 73
            aload 5 /* deleteStatement */
            invokevirtual org.hibernate.hql.internal.ast.tree.DeleteStatement.getFromClause:()Lorg/hibernate/hql/internal/ast/tree/FromClause;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getFromElement:()Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 6 /* fromElement */
        start local 6 // org.hibernate.hql.internal.ast.tree.FromElement fromElement
         3: .line 75
            aload 0 /* this */
            aload 6 /* fromElement */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getQueryable:()Lorg/hibernate/persister/entity/Queryable;
            putfield org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.targetedPersister:Lorg/hibernate/persister/entity/Queryable;
         4: .line 76
            aload 6 /* fromElement */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getTableAlias:()Ljava/lang/String;
            astore 7 /* bulkTargetAlias */
        start local 7 // java.lang.String bulkTargetAlias
         5: .line 78
            aload 0 /* this */
            aload 5 /* deleteStatement */
            invokevirtual org.hibernate.hql.internal.ast.tree.DeleteStatement.getWhereClause:()Lantlr/collections/AST;
            invokevirtual org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.processWhereClause:(Lantlr/collections/AST;)Lorg/hibernate/hql/spi/AbstractTableBasedBulkIdHandler$ProcessedWhereClause;
            astore 8 /* processedWhereClause */
        start local 8 // org.hibernate.hql.spi.AbstractTableBasedBulkIdHandler$ProcessedWhereClause processedWhereClause
         6: .line 79
            aload 0 /* this */
            aload 8 /* processedWhereClause */
            invokevirtual org.hibernate.hql.spi.AbstractTableBasedBulkIdHandler$ProcessedWhereClause.getIdSelectParameterSpecifications:()Ljava/util/List;
            putfield org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.idSelectParameterSpecifications:Ljava/util/List;
         7: .line 80
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.targetedPersister:Lorg/hibernate/persister/entity/Queryable;
            aload 7 /* bulkTargetAlias */
            aload 8 /* processedWhereClause */
            invokevirtual org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.generateIdInsertSelect:(Lorg/hibernate/persister/entity/Queryable;Ljava/lang/String;Lorg/hibernate/hql/spi/AbstractTableBasedBulkIdHandler$ProcessedWhereClause;)Ljava/lang/String;
            putfield org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.idInsertSelect:Ljava/lang/String;
         8: .line 81
            getstatic org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.log:Lorg/jboss/logging/Logger;
            ldc "Generated ID-INSERT-SELECT SQL (multi-table delete) : {0}"
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.idInsertSelect:Ljava/lang/String;
            invokevirtual org.jboss.logging.Logger.tracev:(Ljava/lang/String;Ljava/lang/Object;)V
         9: .line 83
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.targetedPersister:Lorg/hibernate/persister/entity/Queryable;
            invokevirtual org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.generateIdSubselect:(Lorg/hibernate/persister/entity/Queryable;)Ljava/lang/String;
            astore 9 /* idSubselect */
        start local 9 // java.lang.String idSubselect
        10: .line 84
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.deletes:Ljava/util/List;
        11: .line 88
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.targetedPersister:Lorg/hibernate/persister/entity/Queryable;
            invokeinterface org.hibernate.persister.entity.Queryable.getPropertyTypes:()[Lorg/hibernate/type/Type;
            dup
            astore 13
            arraylength
            istore 12
            iconst_0
            istore 11
            goto 21
      StackMap locals: org.hibernate.hql.spi.TableBasedDeleteHandlerImpl org.hibernate.engine.spi.SessionFactoryImplementor org.hibernate.hql.internal.ast.HqlSqlWalker java.lang.String java.lang.String org.hibernate.hql.internal.ast.tree.DeleteStatement org.hibernate.hql.internal.ast.tree.FromElement java.lang.String org.hibernate.hql.spi.AbstractTableBasedBulkIdHandler$ProcessedWhereClause java.lang.String top int int org.hibernate.type.Type[]
      StackMap stack:
        12: aload 13
            iload 11
            aaload
            astore 10 /* type */
        start local 10 // org.hibernate.type.Type type
        13: .line 89
            aload 10 /* type */
            invokeinterface org.hibernate.type.Type.isCollectionType:()Z
            ifeq 20
        14: .line 90
            aload 10 /* type */
            checkcast org.hibernate.type.CollectionType
            astore 14 /* cType */
        start local 14 // org.hibernate.type.CollectionType cType
        15: .line 91
            aload 1 /* factory */
            aload 14 /* cType */
            invokevirtual org.hibernate.type.CollectionType.getRole:()Ljava/lang/String;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getCollectionPersister:(Ljava/lang/String;)Lorg/hibernate/persister/collection/CollectionPersister;
            checkcast org.hibernate.persister.collection.AbstractCollectionPersister
            astore 15 /* cPersister */
        start local 15 // org.hibernate.persister.collection.AbstractCollectionPersister cPersister
        16: .line 92
            aload 15 /* cPersister */
            invokevirtual org.hibernate.persister.collection.AbstractCollectionPersister.isManyToMany:()Z
            ifeq 20
        17: .line 93
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.deletes:Ljava/util/List;
            aload 0 /* this */
            aload 15 /* cPersister */
            invokevirtual org.hibernate.persister.collection.AbstractCollectionPersister.getTableName:()Ljava/lang/String;
        18: .line 94
            aload 15 /* cPersister */
            invokevirtual org.hibernate.persister.collection.AbstractCollectionPersister.getKeyColumnNames:()[Ljava/lang/String;
            aload 9 /* idSubselect */
            ldc "bulk delete - m2m join table cleanup"
        19: .line 93
            invokevirtual org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.generateDelete:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 15 // org.hibernate.persister.collection.AbstractCollectionPersister cPersister
        end local 14 // org.hibernate.type.CollectionType cType
        end local 10 // org.hibernate.type.Type type
        20: .line 88
      StackMap locals:
      StackMap stack:
            iinc 11 1
      StackMap locals:
      StackMap stack:
        21: iload 11
            iload 12
            if_icmplt 12
        22: .line 99
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.targetedPersister:Lorg/hibernate/persister/entity/Queryable;
            invokeinterface org.hibernate.persister.entity.Queryable.getConstraintOrderedTableNameClosure:()[Ljava/lang/String;
            astore 10 /* tableNames */
        start local 10 // java.lang.String[] tableNames
        23: .line 100
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.targetedPersister:Lorg/hibernate/persister/entity/Queryable;
            invokeinterface org.hibernate.persister.entity.Queryable.getContraintOrderedTableKeyColumnClosure:()[[Ljava/lang/String;
            astore 11 /* columnNames */
        start local 11 // java.lang.String[][] columnNames
        24: .line 101
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        25: goto 28
        26: .line 106
      StackMap locals: org.hibernate.hql.spi.TableBasedDeleteHandlerImpl org.hibernate.engine.spi.SessionFactoryImplementor org.hibernate.hql.internal.ast.HqlSqlWalker java.lang.String java.lang.String org.hibernate.hql.internal.ast.tree.DeleteStatement org.hibernate.hql.internal.ast.tree.FromElement java.lang.String org.hibernate.hql.spi.AbstractTableBasedBulkIdHandler$ProcessedWhereClause java.lang.String java.lang.String[] java.lang.String[][] int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.deletes:Ljava/util/List;
            aload 0 /* this */
            aload 10 /* tableNames */
            iload 12 /* i */
            aaload
            aload 11 /* columnNames */
            iload 12 /* i */
            aaload
            aload 9 /* idSubselect */
            ldc "bulk delete"
            invokevirtual org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.generateDelete:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        27: .line 101
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        28: iload 12 /* i */
            aload 10 /* tableNames */
            arraylength
            if_icmplt 26
        end local 12 // int i
        29: .line 108
            return
        end local 11 // java.lang.String[][] columnNames
        end local 10 // java.lang.String[] tableNames
        end local 9 // java.lang.String idSubselect
        end local 8 // org.hibernate.hql.spi.AbstractTableBasedBulkIdHandler$ProcessedWhereClause processedWhereClause
        end local 7 // java.lang.String bulkTargetAlias
        end local 6 // org.hibernate.hql.internal.ast.tree.FromElement fromElement
        end local 5 // org.hibernate.hql.internal.ast.tree.DeleteStatement deleteStatement
        end local 4 // java.lang.String schema
        end local 3 // java.lang.String catalog
        end local 2 // org.hibernate.hql.internal.ast.HqlSqlWalker walker
        end local 1 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 0 // org.hibernate.hql.spi.TableBasedDeleteHandlerImpl this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   30     0                  this  Lorg/hibernate/hql/spi/TableBasedDeleteHandlerImpl;
            0   30     1               factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            0   30     2                walker  Lorg/hibernate/hql/internal/ast/HqlSqlWalker;
            0   30     3               catalog  Ljava/lang/String;
            0   30     4                schema  Ljava/lang/String;
            2   30     5       deleteStatement  Lorg/hibernate/hql/internal/ast/tree/DeleteStatement;
            3   30     6           fromElement  Lorg/hibernate/hql/internal/ast/tree/FromElement;
            5   30     7       bulkTargetAlias  Ljava/lang/String;
            6   30     8  processedWhereClause  Lorg/hibernate/hql/spi/AbstractTableBasedBulkIdHandler$ProcessedWhereClause;
           10   30     9           idSubselect  Ljava/lang/String;
           13   20    10                  type  Lorg/hibernate/type/Type;
           15   20    14                 cType  Lorg/hibernate/type/CollectionType;
           16   20    15            cPersister  Lorg/hibernate/persister/collection/AbstractCollectionPersister;
           23   30    10            tableNames  [Ljava/lang/String;
           24   30    11           columnNames  [[Ljava/lang/String;
           25   29    12                     i  I
    MethodParameters:
         Name  Flags
      factory  
      walker   
      catalog  
      schema   

  private java.lang.String generateDelete(java.lang.String, java.lang.String[], java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // org.hibernate.hql.spi.TableBasedDeleteHandlerImpl this
        start local 1 // java.lang.String tableName
        start local 2 // java.lang.String[] columnNames
        start local 3 // java.lang.String idSubselect
        start local 4 // java.lang.String comment
         0: .line 111
            new org.hibernate.sql.Delete
            dup
            invokespecial org.hibernate.sql.Delete.<init>:()V
         1: .line 112
            aload 1 /* tableName */
            invokevirtual org.hibernate.sql.Delete.setTableName:(Ljava/lang/String;)Lorg/hibernate/sql/Delete;
         2: .line 113
            new java.lang.StringBuilder
            dup
            ldc "("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ", "
            aload 2 /* columnNames */
            invokestatic org.hibernate.internal.util.StringHelper.join:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ") IN ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* idSubselect */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Delete.setWhere:(Ljava/lang/String;)Lorg/hibernate/sql/Delete;
         3: .line 111
            astore 5 /* delete */
        start local 5 // org.hibernate.sql.Delete delete
         4: .line 114
            aload 0 /* this */
            invokevirtual org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.factory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.isCommentsEnabled:()Z
            ifeq 6
         5: .line 115
            aload 5 /* delete */
            aload 4 /* comment */
            invokevirtual org.hibernate.sql.Delete.setComment:(Ljava/lang/String;)Lorg/hibernate/sql/Delete;
            pop
         6: .line 117
      StackMap locals: org.hibernate.sql.Delete
      StackMap stack:
            aload 5 /* delete */
            invokevirtual org.hibernate.sql.Delete.toStatementString:()Ljava/lang/String;
            areturn
        end local 5 // org.hibernate.sql.Delete delete
        end local 4 // java.lang.String comment
        end local 3 // java.lang.String idSubselect
        end local 2 // java.lang.String[] columnNames
        end local 1 // java.lang.String tableName
        end local 0 // org.hibernate.hql.spi.TableBasedDeleteHandlerImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lorg/hibernate/hql/spi/TableBasedDeleteHandlerImpl;
            0    7     1    tableName  Ljava/lang/String;
            0    7     2  columnNames  [Ljava/lang/String;
            0    7     3  idSubselect  Ljava/lang/String;
            0    7     4      comment  Ljava/lang/String;
            4    7     5       delete  Lorg/hibernate/sql/Delete;
    MethodParameters:
             Name  Flags
      tableName    
      columnNames  
      idSubselect  
      comment      

  public org.hibernate.persister.entity.Queryable getTargetedQueryable();
    descriptor: ()Lorg/hibernate/persister/entity/Queryable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.hql.spi.TableBasedDeleteHandlerImpl this
         0: .line 122
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.targetedPersister:Lorg/hibernate/persister/entity/Queryable;
            areturn
        end local 0 // org.hibernate.hql.spi.TableBasedDeleteHandlerImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/spi/TableBasedDeleteHandlerImpl;

  public java.lang.String[] getSqlStatements();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.hql.spi.TableBasedDeleteHandlerImpl this
         0: .line 127
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.deletes:Ljava/util/List;
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.deletes:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            anewarray java.lang.String
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 0 // org.hibernate.hql.spi.TableBasedDeleteHandlerImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/spi/TableBasedDeleteHandlerImpl;

  public int execute(org.hibernate.engine.spi.SessionImplementor, org.hibernate.engine.spi.QueryParameters);
    descriptor: (Lorg/hibernate/engine/spi/SessionImplementor;Lorg/hibernate/engine/spi/QueryParameters;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // org.hibernate.hql.spi.TableBasedDeleteHandlerImpl this
        start local 1 // org.hibernate.engine.spi.SessionImplementor session
        start local 2 // org.hibernate.engine.spi.QueryParameters queryParameters
         0: .line 132
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.targetedPersister:Lorg/hibernate/persister/entity/Queryable;
            aload 1 /* session */
            invokevirtual org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.prepareForUse:(Lorg/hibernate/persister/entity/Queryable;Lorg/hibernate/engine/spi/SessionImplementor;)V
         1: .line 134
            aconst_null
            astore 3 /* ps */
        start local 3 // java.sql.PreparedStatement ps
         2: .line 135
            iconst_0
            istore 4 /* resultCount */
        start local 4 // int resultCount
         3: .line 138
            aload 1 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.idInsertSelect:Ljava/lang/String;
            iconst_0
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;Z)Ljava/sql/PreparedStatement;
            astore 3 /* ps */
         4: .line 139
            iconst_1
            istore 5 /* pos */
        start local 5 // int pos
         5: .line 140
            iload 5 /* pos */
            aload 0 /* this */
            aload 3 /* ps */
            aload 1 /* session */
            iload 5 /* pos */
            invokevirtual org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.handlePrependedParametersOnIdSelection:(Ljava/sql/PreparedStatement;Lorg/hibernate/engine/spi/SessionImplementor;I)I
            iadd
            istore 5 /* pos */
         6: .line 141
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.idSelectParameterSpecifications:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 9
      StackMap locals: org.hibernate.hql.spi.TableBasedDeleteHandlerImpl org.hibernate.engine.spi.SessionImplementor org.hibernate.engine.spi.QueryParameters java.sql.PreparedStatement int int top java.util.Iterator
      StackMap stack:
         7: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.param.ParameterSpecification
            astore 6 /* parameterSpecification */
        start local 6 // org.hibernate.param.ParameterSpecification parameterSpecification
         8: .line 142
            iload 5 /* pos */
            aload 6 /* parameterSpecification */
            aload 3 /* ps */
            aload 2 /* queryParameters */
            aload 1 /* session */
            iload 5 /* pos */
            invokeinterface org.hibernate.param.ParameterSpecification.bind:(Ljava/sql/PreparedStatement;Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SessionImplementor;I)I
            iadd
            istore 5 /* pos */
        end local 6 // org.hibernate.param.ParameterSpecification parameterSpecification
         9: .line 141
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        10: .line 144
            aload 1 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResultSetReturn:()Lorg/hibernate/engine/jdbc/spi/ResultSetReturn;
            aload 3 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.ResultSetReturn.executeUpdate:(Ljava/sql/PreparedStatement;)I
            istore 4 /* resultCount */
        end local 5 // int pos
        11: .line 145
            goto 16
        12: .line 146
      StackMap locals: org.hibernate.hql.spi.TableBasedDeleteHandlerImpl org.hibernate.engine.spi.SessionImplementor org.hibernate.engine.spi.QueryParameters java.sql.PreparedStatement int
      StackMap stack: java.lang.Throwable
            astore 8
        13: .line 147
            aload 3 /* ps */
            ifnull 15
        14: .line 148
            aload 1 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            aload 3 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        15: .line 150
      StackMap locals: org.hibernate.hql.spi.TableBasedDeleteHandlerImpl org.hibernate.engine.spi.SessionImplementor org.hibernate.engine.spi.QueryParameters java.sql.PreparedStatement int top top top java.lang.Throwable
      StackMap stack:
            aload 8
            athrow
        16: .line 147
      StackMap locals: org.hibernate.hql.spi.TableBasedDeleteHandlerImpl org.hibernate.engine.spi.SessionImplementor org.hibernate.engine.spi.QueryParameters java.sql.PreparedStatement int
      StackMap stack:
            aload 3 /* ps */
            ifnull 21
        17: .line 148
            aload 1 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            aload 3 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        18: .line 151
            goto 21
        19: .line 152
      StackMap locals:
      StackMap stack: java.sql.SQLException
            astore 5 /* e */
        start local 5 // java.sql.SQLException e
        20: .line 153
            aload 0 /* this */
            aload 5 /* e */
            ldc "could not insert/select ids for bulk delete"
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.idInsertSelect:Ljava/lang/String;
            invokevirtual org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.convert:(Ljava/sql/SQLException;Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/JDBCException;
            athrow
        end local 5 // java.sql.SQLException e
        21: .line 157
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.deletes:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 40
      StackMap locals: org.hibernate.hql.spi.TableBasedDeleteHandlerImpl org.hibernate.engine.spi.SessionImplementor org.hibernate.engine.spi.QueryParameters java.sql.PreparedStatement int top java.util.Iterator
      StackMap stack:
        22: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* delete */
        start local 5 // java.lang.String delete
        23: .line 160
            aload 1 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
        24: .line 161
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        25: .line 162
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
        26: .line 163
            aload 5 /* delete */
            iconst_0
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;Z)Ljava/sql/PreparedStatement;
        27: .line 160
            astore 3 /* ps */
        28: .line 164
            aload 0 /* this */
            aload 3 /* ps */
            aload 1 /* session */
            invokevirtual org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.handleAddedParametersOnDelete:(Ljava/sql/PreparedStatement;Lorg/hibernate/engine/spi/SessionImplementor;)V
        29: .line 165
            aload 1 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResultSetReturn:()Lorg/hibernate/engine/jdbc/spi/ResultSetReturn;
            aload 3 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.ResultSetReturn.executeUpdate:(Ljava/sql/PreparedStatement;)I
            pop
        30: .line 166
            goto 35
        31: .line 167
      StackMap locals: org.hibernate.hql.spi.TableBasedDeleteHandlerImpl org.hibernate.engine.spi.SessionImplementor org.hibernate.engine.spi.QueryParameters java.sql.PreparedStatement int java.lang.String java.util.Iterator
      StackMap stack: java.lang.Throwable
            astore 7
        32: .line 168
            aload 3 /* ps */
            ifnull 34
        33: .line 169
            aload 1 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            aload 3 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        34: .line 171
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 7
            athrow
        35: .line 168
      StackMap locals:
      StackMap stack:
            aload 3 /* ps */
            ifnull 40
        36: .line 169
            aload 1 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            aload 3 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        37: .line 172
            goto 40
        38: .line 173
      StackMap locals:
      StackMap stack: java.sql.SQLException
            astore 7 /* e */
        start local 7 // java.sql.SQLException e
        39: .line 174
            aload 0 /* this */
            aload 7 /* e */
            ldc "error performing bulk delete"
            aload 5 /* delete */
            invokevirtual org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.convert:(Ljava/sql/SQLException;Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/JDBCException;
            athrow
        end local 7 // java.sql.SQLException e
        end local 5 // java.lang.String delete
        40: .line 157
      StackMap locals: org.hibernate.hql.spi.TableBasedDeleteHandlerImpl org.hibernate.engine.spi.SessionImplementor org.hibernate.engine.spi.QueryParameters java.sql.PreparedStatement int top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        41: .line 178
            iload 4 /* resultCount */
            istore 10
        42: .line 182
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.targetedPersister:Lorg/hibernate/persister/entity/Queryable;
            aload 1 /* session */
            invokevirtual org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.releaseFromUse:(Lorg/hibernate/persister/entity/Queryable;Lorg/hibernate/engine/spi/SessionImplementor;)V
        43: .line 178
            iload 10
            ireturn
        end local 4 // int resultCount
        end local 3 // java.sql.PreparedStatement ps
        44: .line 181
      StackMap locals: org.hibernate.hql.spi.TableBasedDeleteHandlerImpl org.hibernate.engine.spi.SessionImplementor org.hibernate.engine.spi.QueryParameters
      StackMap stack: java.lang.Throwable
            astore 9
        45: .line 182
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.targetedPersister:Lorg/hibernate/persister/entity/Queryable;
            aload 1 /* session */
            invokevirtual org.hibernate.hql.spi.TableBasedDeleteHandlerImpl.releaseFromUse:(Lorg/hibernate/persister/entity/Queryable;Lorg/hibernate/engine/spi/SessionImplementor;)V
        46: .line 183
            aload 9
            athrow
        end local 2 // org.hibernate.engine.spi.QueryParameters queryParameters
        end local 1 // org.hibernate.engine.spi.SessionImplementor session
        end local 0 // org.hibernate.hql.spi.TableBasedDeleteHandlerImpl this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   47     0                    this  Lorg/hibernate/hql/spi/TableBasedDeleteHandlerImpl;
            0   47     1                 session  Lorg/hibernate/engine/spi/SessionImplementor;
            0   47     2         queryParameters  Lorg/hibernate/engine/spi/QueryParameters;
            2   44     3                      ps  Ljava/sql/PreparedStatement;
            3   44     4             resultCount  I
            5   11     5                     pos  I
            8    9     6  parameterSpecification  Lorg/hibernate/param/ParameterSpecification;
           20   21     5                       e  Ljava/sql/SQLException;
           23   40     5                  delete  Ljava/lang/String;
           39   40     7                       e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           3    12      12  any
           3    18      19  Class java.sql.SQLException
          23    31      31  any
          23    37      38  Class java.sql.SQLException
           1    42      44  any
    MethodParameters:
                 Name  Flags
      session          
      queryParameters  

  protected int handlePrependedParametersOnIdSelection(java.sql.PreparedStatement, org.hibernate.engine.spi.SessionImplementor, int);
    descriptor: (Ljava/sql/PreparedStatement;Lorg/hibernate/engine/spi/SessionImplementor;I)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=4, args_size=4
        start local 0 // org.hibernate.hql.spi.TableBasedDeleteHandlerImpl this
        start local 1 // java.sql.PreparedStatement ps
        start local 2 // org.hibernate.engine.spi.SessionImplementor session
        start local 3 // int pos
         0: .line 187
            iconst_0
            ireturn
        end local 3 // int pos
        end local 2 // org.hibernate.engine.spi.SessionImplementor session
        end local 1 // java.sql.PreparedStatement ps
        end local 0 // org.hibernate.hql.spi.TableBasedDeleteHandlerImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/hibernate/hql/spi/TableBasedDeleteHandlerImpl;
            0    1     1       ps  Ljava/sql/PreparedStatement;
            0    1     2  session  Lorg/hibernate/engine/spi/SessionImplementor;
            0    1     3      pos  I
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
         Name  Flags
      ps       
      session  
      pos      

  protected void handleAddedParametersOnDelete(java.sql.PreparedStatement, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/sql/PreparedStatement;Lorg/hibernate/engine/spi/SessionImplementor;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=3, args_size=3
        start local 0 // org.hibernate.hql.spi.TableBasedDeleteHandlerImpl this
        start local 1 // java.sql.PreparedStatement ps
        start local 2 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 191
            return
        end local 2 // org.hibernate.engine.spi.SessionImplementor session
        end local 1 // java.sql.PreparedStatement ps
        end local 0 // org.hibernate.hql.spi.TableBasedDeleteHandlerImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/hibernate/hql/spi/TableBasedDeleteHandlerImpl;
            0    1     1       ps  Ljava/sql/PreparedStatement;
            0    1     2  session  Lorg/hibernate/engine/spi/SessionImplementor;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
         Name  Flags
      ps       
      session  
}
SourceFile: "TableBasedDeleteHandlerImpl.java"
InnerClasses:
  protected ProcessedWhereClause = org.hibernate.hql.spi.AbstractTableBasedBulkIdHandler$ProcessedWhereClause of org.hibernate.hql.spi.AbstractTableBasedBulkIdHandler
  public abstract DeleteHandler = org.hibernate.hql.spi.MultiTableBulkIdStrategy$DeleteHandler of org.hibernate.hql.spi.MultiTableBulkIdStrategy