public class org.hibernate.hql.spi.TableBasedUpdateHandlerImpl extends org.hibernate.hql.spi.AbstractTableBasedBulkIdHandler implements org.hibernate.hql.spi.MultiTableBulkIdStrategy$UpdateHandler
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.hql.spi.TableBasedUpdateHandlerImpl
  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.lang.String[] updates;
    descriptor: [Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hibernate.param.ParameterSpecification[][] assignmentParameterSpecifications;
    descriptor: [[Lorg/hibernate/param/ParameterSpecification;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 52
            ldc Lorg/hibernate/hql/spi/TableBasedUpdateHandlerImpl;
            invokestatic org.jboss.logging.Logger.getLogger:(Ljava/lang/Class;)Lorg/jboss/logging/Logger;
            putstatic org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.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.TableBasedUpdateHandlerImpl this
        start local 1 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        start local 2 // org.hibernate.hql.internal.ast.HqlSqlWalker walker
         0: .line 64
            aload 0 /* this */
            aload 1 /* factory */
            aload 2 /* walker */
            aconst_null
            aconst_null
            invokespecial org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.<init>:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/hql/internal/ast/HqlSqlWalker;Ljava/lang/String;Ljava/lang/String;)V
         1: .line 65
            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.TableBasedUpdateHandlerImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/hibernate/hql/spi/TableBasedUpdateHandlerImpl;
            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=5, locals=20, args_size=5
        start local 0 // org.hibernate.hql.spi.TableBasedUpdateHandlerImpl 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 72
            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 74
            aload 2 /* walker */
            invokevirtual org.hibernate.hql.internal.ast.HqlSqlWalker.getAST:()Lantlr/collections/AST;
            checkcast org.hibernate.hql.internal.ast.tree.UpdateStatement
            astore 5 /* updateStatement */
        start local 5 // org.hibernate.hql.internal.ast.tree.UpdateStatement updateStatement
         2: .line 75
            aload 5 /* updateStatement */
            invokevirtual org.hibernate.hql.internal.ast.tree.UpdateStatement.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 77
            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.TableBasedUpdateHandlerImpl.targetedPersister:Lorg/hibernate/persister/entity/Queryable;
         4: .line 78
            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 80
            aload 0 /* this */
            aload 5 /* updateStatement */
            invokevirtual org.hibernate.hql.internal.ast.tree.UpdateStatement.getWhereClause:()Lantlr/collections/AST;
            invokevirtual org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.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 81
            aload 0 /* this */
            aload 8 /* processedWhereClause */
            invokevirtual org.hibernate.hql.spi.AbstractTableBasedBulkIdHandler$ProcessedWhereClause.getIdSelectParameterSpecifications:()Ljava/util/List;
            putfield org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.idSelectParameterSpecifications:Ljava/util/List;
         7: .line 82
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.targetedPersister:Lorg/hibernate/persister/entity/Queryable;
            aload 7 /* bulkTargetAlias */
            aload 8 /* processedWhereClause */
            invokevirtual org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.generateIdInsertSelect:(Lorg/hibernate/persister/entity/Queryable;Ljava/lang/String;Lorg/hibernate/hql/spi/AbstractTableBasedBulkIdHandler$ProcessedWhereClause;)Ljava/lang/String;
            putfield org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.idInsertSelect:Ljava/lang/String;
         8: .line 83
            getstatic org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.log:Lorg/jboss/logging/Logger;
            ldc "Generated ID-INSERT-SELECT SQL (multi-table update) : {0}"
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.idInsertSelect:Ljava/lang/String;
            invokevirtual org.jboss.logging.Logger.tracev:(Ljava/lang/String;Ljava/lang/Object;)V
         9: .line 85
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.targetedPersister:Lorg/hibernate/persister/entity/Queryable;
            invokeinterface org.hibernate.persister.entity.Queryable.getConstraintOrderedTableNameClosure:()[Ljava/lang/String;
            astore 9 /* tableNames */
        start local 9 // java.lang.String[] tableNames
        10: .line 86
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.targetedPersister:Lorg/hibernate/persister/entity/Queryable;
            invokeinterface org.hibernate.persister.entity.Queryable.getContraintOrderedTableKeyColumnClosure:()[[Ljava/lang/String;
            astore 10 /* columnNames */
        start local 10 // java.lang.String[][] columnNames
        11: .line 87
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.targetedPersister:Lorg/hibernate/persister/entity/Queryable;
            invokevirtual org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.generateIdSubselect:(Lorg/hibernate/persister/entity/Queryable;)Ljava/lang/String;
            astore 11 /* idSubselect */
        start local 11 // java.lang.String idSubselect
        12: .line 89
            aload 0 /* this */
            aload 9 /* tableNames */
            arraylength
            anewarray java.lang.String
            putfield org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.updates:[Ljava/lang/String;
        13: .line 90
            aload 0 /* this */
            aload 9 /* tableNames */
            arraylength
            anewarray org.hibernate.param.ParameterSpecification[]
            putfield org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.assignmentParameterSpecifications:[[Lorg/hibernate/param/ParameterSpecification;
        14: .line 91
            iconst_0
            istore 12 /* tableIndex */
        start local 12 // int tableIndex
        15: goto 41
        16: .line 92
      StackMap locals: org.hibernate.hql.spi.TableBasedUpdateHandlerImpl org.hibernate.engine.spi.SessionFactoryImplementor org.hibernate.hql.internal.ast.HqlSqlWalker java.lang.String java.lang.String org.hibernate.hql.internal.ast.tree.UpdateStatement 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:
            iconst_0
            istore 13 /* affected */
        start local 13 // boolean affected
        17: .line 93
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 14 /* parameterList */
        start local 14 // java.util.List parameterList
        18: .line 94
            new org.hibernate.sql.Update
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.factory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokespecial org.hibernate.sql.Update.<init>:(Lorg/hibernate/dialect/Dialect;)V
        19: .line 95
            aload 9 /* tableNames */
            iload 12 /* tableIndex */
            aaload
            invokevirtual org.hibernate.sql.Update.setTableName:(Ljava/lang/String;)Lorg/hibernate/sql/Update;
        20: .line 96
            new java.lang.StringBuilder
            dup
            ldc "("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ", "
            aload 10 /* columnNames */
            iload 12 /* tableIndex */
            aaload
            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 11 /* 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.Update.setWhere:(Ljava/lang/String;)Lorg/hibernate/sql/Update;
        21: .line 94
            astore 15 /* update */
        start local 15 // org.hibernate.sql.Update update
        22: .line 97
            aload 0 /* this */
            invokevirtual org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.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 24
        23: .line 98
            aload 15 /* update */
            ldc "bulk update"
            invokevirtual org.hibernate.sql.Update.setComment:(Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
        24: .line 100
      StackMap locals: int java.util.List org.hibernate.sql.Update
      StackMap stack:
            aload 2 /* walker */
            invokevirtual org.hibernate.hql.internal.ast.HqlSqlWalker.getAssignmentSpecifications:()Ljava/util/ArrayList;
            astore 16 /* assignmentSpecifications */
        start local 16 // java.util.List assignmentSpecifications
        25: .line 101
            aload 16 /* assignmentSpecifications */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 18
            goto 36
      StackMap locals: org.hibernate.hql.spi.TableBasedUpdateHandlerImpl org.hibernate.engine.spi.SessionFactoryImplementor org.hibernate.hql.internal.ast.HqlSqlWalker java.lang.String java.lang.String org.hibernate.hql.internal.ast.tree.UpdateStatement 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 int java.util.List org.hibernate.sql.Update java.util.List top java.util.Iterator
      StackMap stack:
        26: aload 18
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.hql.internal.ast.tree.AssignmentSpecification
            astore 17 /* assignmentSpecification */
        start local 17 // org.hibernate.hql.internal.ast.tree.AssignmentSpecification assignmentSpecification
        27: .line 102
            aload 17 /* assignmentSpecification */
            aload 9 /* tableNames */
            iload 12 /* tableIndex */
            aaload
            invokevirtual org.hibernate.hql.internal.ast.tree.AssignmentSpecification.affectsTable:(Ljava/lang/String;)Z
            ifeq 36
        28: .line 103
            iconst_1
            istore 13 /* affected */
        29: .line 104
            aload 15 /* update */
            aload 17 /* assignmentSpecification */
            invokevirtual org.hibernate.hql.internal.ast.tree.AssignmentSpecification.getSqlAssignmentFragment:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Update.appendAssignmentFragment:(Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
        30: .line 105
            aload 17 /* assignmentSpecification */
            invokevirtual org.hibernate.hql.internal.ast.tree.AssignmentSpecification.getParameters:()[Lorg/hibernate/param/ParameterSpecification;
            ifnull 36
        31: .line 106
            iconst_0
            istore 19 /* paramIndex */
        start local 19 // int paramIndex
        32: goto 35
        33: .line 107
      StackMap locals: org.hibernate.hql.spi.TableBasedUpdateHandlerImpl org.hibernate.engine.spi.SessionFactoryImplementor org.hibernate.hql.internal.ast.HqlSqlWalker java.lang.String java.lang.String org.hibernate.hql.internal.ast.tree.UpdateStatement 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 int java.util.List org.hibernate.sql.Update java.util.List org.hibernate.hql.internal.ast.tree.AssignmentSpecification java.util.Iterator int
      StackMap stack:
            aload 14 /* parameterList */
            aload 17 /* assignmentSpecification */
            invokevirtual org.hibernate.hql.internal.ast.tree.AssignmentSpecification.getParameters:()[Lorg/hibernate/param/ParameterSpecification;
            iload 19 /* paramIndex */
            aaload
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        34: .line 106
            iinc 19 /* paramIndex */ 1
      StackMap locals:
      StackMap stack:
        35: iload 19 /* paramIndex */
            aload 17 /* assignmentSpecification */
            invokevirtual org.hibernate.hql.internal.ast.tree.AssignmentSpecification.getParameters:()[Lorg/hibernate/param/ParameterSpecification;
            arraylength
            if_icmplt 33
        end local 19 // int paramIndex
        end local 17 // org.hibernate.hql.internal.ast.tree.AssignmentSpecification assignmentSpecification
        36: .line 101
      StackMap locals: org.hibernate.hql.spi.TableBasedUpdateHandlerImpl org.hibernate.engine.spi.SessionFactoryImplementor org.hibernate.hql.internal.ast.HqlSqlWalker java.lang.String java.lang.String org.hibernate.hql.internal.ast.tree.UpdateStatement 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 int java.util.List org.hibernate.sql.Update java.util.List top java.util.Iterator
      StackMap stack:
            aload 18
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 26
        37: .line 112
            iload 13 /* affected */
            ifeq 40
        38: .line 113
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.updates:[Ljava/lang/String;
            iload 12 /* tableIndex */
            aload 15 /* update */
            invokevirtual org.hibernate.sql.Update.toStatementString:()Ljava/lang/String;
            aastore
        39: .line 114
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.assignmentParameterSpecifications:[[Lorg/hibernate/param/ParameterSpecification;
            iload 12 /* tableIndex */
            aload 14 /* parameterList */
            aload 14 /* parameterList */
            invokeinterface java.util.List.size:()I
            anewarray org.hibernate.param.ParameterSpecification
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.hibernate.param.ParameterSpecification[]
            aastore
        end local 16 // java.util.List assignmentSpecifications
        end local 15 // org.hibernate.sql.Update update
        end local 14 // java.util.List parameterList
        end local 13 // boolean affected
        40: .line 91
      StackMap locals: org.hibernate.hql.spi.TableBasedUpdateHandlerImpl org.hibernate.engine.spi.SessionFactoryImplementor org.hibernate.hql.internal.ast.HqlSqlWalker java.lang.String java.lang.String org.hibernate.hql.internal.ast.tree.UpdateStatement 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:
            iinc 12 /* tableIndex */ 1
      StackMap locals:
      StackMap stack:
        41: iload 12 /* tableIndex */
            aload 9 /* tableNames */
            arraylength
            if_icmplt 16
        end local 12 // int tableIndex
        42: .line 117
            return
        end local 11 // java.lang.String idSubselect
        end local 10 // java.lang.String[][] columnNames
        end local 9 // java.lang.String[] tableNames
        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.UpdateStatement updateStatement
        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.TableBasedUpdateHandlerImpl this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   43     0                      this  Lorg/hibernate/hql/spi/TableBasedUpdateHandlerImpl;
            0   43     1                   factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            0   43     2                    walker  Lorg/hibernate/hql/internal/ast/HqlSqlWalker;
            0   43     3                   catalog  Ljava/lang/String;
            0   43     4                    schema  Ljava/lang/String;
            2   43     5           updateStatement  Lorg/hibernate/hql/internal/ast/tree/UpdateStatement;
            3   43     6               fromElement  Lorg/hibernate/hql/internal/ast/tree/FromElement;
            5   43     7           bulkTargetAlias  Ljava/lang/String;
            6   43     8      processedWhereClause  Lorg/hibernate/hql/spi/AbstractTableBasedBulkIdHandler$ProcessedWhereClause;
           10   43     9                tableNames  [Ljava/lang/String;
           11   43    10               columnNames  [[Ljava/lang/String;
           12   43    11               idSubselect  Ljava/lang/String;
           15   42    12                tableIndex  I
           17   40    13                  affected  Z
           18   40    14             parameterList  Ljava/util/List<Lorg/hibernate/param/ParameterSpecification;>;
           22   40    15                    update  Lorg/hibernate/sql/Update;
           25   40    16  assignmentSpecifications  Ljava/util/List<Lorg/hibernate/hql/internal/ast/tree/AssignmentSpecification;>;
           27   36    17   assignmentSpecification  Lorg/hibernate/hql/internal/ast/tree/AssignmentSpecification;
           32   36    19                paramIndex  I
    MethodParameters:
         Name  Flags
      factory  
      walker   
      catalog  
      schema   

  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.TableBasedUpdateHandlerImpl this
         0: .line 121
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.targetedPersister:Lorg/hibernate/persister/entity/Queryable;
            areturn
        end local 0 // org.hibernate.hql.spi.TableBasedUpdateHandlerImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/spi/TableBasedUpdateHandlerImpl;

  public java.lang.String[] getSqlStatements();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.hql.spi.TableBasedUpdateHandlerImpl this
         0: .line 126
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.updates:[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.hql.spi.TableBasedUpdateHandlerImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/spi/TableBasedUpdateHandlerImpl;

  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.TableBasedUpdateHandlerImpl this
        start local 1 // org.hibernate.engine.spi.SessionImplementor session
        start local 2 // org.hibernate.engine.spi.QueryParameters queryParameters
         0: .line 131
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.targetedPersister:Lorg/hibernate/persister/entity/Queryable;
            aload 1 /* session */
            invokevirtual org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.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.TableBasedUpdateHandlerImpl.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 /* sum */
        start local 5 // int sum
         5: .line 140
            iload 5 /* sum */
            aload 0 /* this */
            aload 3 /* ps */
            aload 1 /* session */
            iload 5 /* sum */
            invokevirtual org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.handlePrependedParametersOnIdSelection:(Ljava/sql/PreparedStatement;Lorg/hibernate/engine/spi/SessionImplementor;I)I
            iadd
            istore 5 /* sum */
         6: .line 141
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.idSelectParameterSpecifications:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 9
      StackMap locals: org.hibernate.hql.spi.TableBasedUpdateHandlerImpl 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 /* sum */
            aload 6 /* parameterSpecification */
            aload 3 /* ps */
            aload 2 /* queryParameters */
            aload 1 /* session */
            iload 5 /* sum */
            invokeinterface org.hibernate.param.ParameterSpecification.bind:(Ljava/sql/PreparedStatement;Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SessionImplementor;I)I
            iadd
            istore 5 /* sum */
        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 sum
        11: .line 145
            goto 16
        12: .line 146
      StackMap locals: org.hibernate.hql.spi.TableBasedUpdateHandlerImpl 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.TableBasedUpdateHandlerImpl 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.TableBasedUpdateHandlerImpl 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 update"
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.idInsertSelect:Ljava/lang/String;
            invokevirtual org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.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:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        22: goto 46
        23: .line 158
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.updates:[Ljava/lang/String;
            iload 5 /* i */
            aaload
            ifnonnull 25
        24: .line 159
            goto 45
        25: .line 163
      StackMap locals:
      StackMap stack:
            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.TableBasedUpdateHandlerImpl.updates:[Ljava/lang/String;
            iload 5 /* i */
            aaload
            iconst_0
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;Z)Ljava/sql/PreparedStatement;
            astore 3 /* ps */
        26: .line 164
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.assignmentParameterSpecifications:[[Lorg/hibernate/param/ParameterSpecification;
            iload 5 /* i */
            aaload
            ifnull 34
        27: .line 165
            iconst_1
            istore 6 /* position */
        start local 6 // int position
        28: .line 166
            iconst_0
            istore 7 /* x */
        start local 7 // int x
        29: goto 32
        30: .line 167
      StackMap locals: int int
      StackMap stack:
            iload 6 /* position */
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.assignmentParameterSpecifications:[[Lorg/hibernate/param/ParameterSpecification;
            iload 5 /* i */
            aaload
            iload 7 /* x */
            aaload
            aload 3 /* ps */
            aload 2 /* queryParameters */
            aload 1 /* session */
            iload 6 /* position */
            invokeinterface org.hibernate.param.ParameterSpecification.bind:(Ljava/sql/PreparedStatement;Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SessionImplementor;I)I
            iadd
            istore 6 /* position */
        31: .line 166
            iinc 7 /* x */ 1
      StackMap locals:
      StackMap stack:
        32: iload 7 /* x */
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.assignmentParameterSpecifications:[[Lorg/hibernate/param/ParameterSpecification;
            iload 5 /* i */
            aaload
            arraylength
            if_icmplt 30
        end local 7 // int x
        33: .line 169
            aload 0 /* this */
            aload 3 /* ps */
            aload 1 /* session */
            iload 6 /* position */
            invokevirtual org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.handleAddedParametersOnUpdate:(Ljava/sql/PreparedStatement;Lorg/hibernate/engine/spi/SessionImplementor;I)V
        end local 6 // int position
        34: .line 171
      StackMap locals:
      StackMap stack:
            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
        35: .line 172
            goto 40
        36: .line 173
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        37: .line 174
            aload 3 /* ps */
            ifnull 39
        38: .line 175
            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
        39: .line 177
      StackMap locals: org.hibernate.hql.spi.TableBasedUpdateHandlerImpl org.hibernate.engine.spi.SessionImplementor org.hibernate.engine.spi.QueryParameters java.sql.PreparedStatement int int top top java.lang.Throwable
      StackMap stack:
            aload 8
            athrow
        40: .line 174
      StackMap locals: org.hibernate.hql.spi.TableBasedUpdateHandlerImpl org.hibernate.engine.spi.SessionImplementor org.hibernate.engine.spi.QueryParameters java.sql.PreparedStatement int int
      StackMap stack:
            aload 3 /* ps */
            ifnull 45
        41: .line 175
            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
        42: .line 178
            goto 45
        43: .line 179
      StackMap locals:
      StackMap stack: java.sql.SQLException
            astore 6 /* e */
        start local 6 // java.sql.SQLException e
        44: .line 180
            aload 0 /* this */
            aload 6 /* e */
            ldc "error performing bulk update"
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.updates:[Ljava/lang/String;
            iload 5 /* i */
            aaload
            invokevirtual org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.convert:(Ljava/sql/SQLException;Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/JDBCException;
            athrow
        end local 6 // java.sql.SQLException e
        45: .line 157
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        46: iload 5 /* i */
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.updates:[Ljava/lang/String;
            arraylength
            if_icmplt 23
        end local 5 // int i
        47: .line 184
            iload 4 /* resultCount */
            istore 10
        48: .line 187
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.targetedPersister:Lorg/hibernate/persister/entity/Queryable;
            aload 1 /* session */
            invokevirtual org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.releaseFromUse:(Lorg/hibernate/persister/entity/Queryable;Lorg/hibernate/engine/spi/SessionImplementor;)V
        49: .line 184
            iload 10
            ireturn
        end local 4 // int resultCount
        end local 3 // java.sql.PreparedStatement ps
        50: .line 186
      StackMap locals: org.hibernate.hql.spi.TableBasedUpdateHandlerImpl org.hibernate.engine.spi.SessionImplementor org.hibernate.engine.spi.QueryParameters
      StackMap stack: java.lang.Throwable
            astore 9
        51: .line 187
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.targetedPersister:Lorg/hibernate/persister/entity/Queryable;
            aload 1 /* session */
            invokevirtual org.hibernate.hql.spi.TableBasedUpdateHandlerImpl.releaseFromUse:(Lorg/hibernate/persister/entity/Queryable;Lorg/hibernate/engine/spi/SessionImplementor;)V
        52: .line 188
            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.TableBasedUpdateHandlerImpl this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   53     0                    this  Lorg/hibernate/hql/spi/TableBasedUpdateHandlerImpl;
            0   53     1                 session  Lorg/hibernate/engine/spi/SessionImplementor;
            0   53     2         queryParameters  Lorg/hibernate/engine/spi/QueryParameters;
            2   50     3                      ps  Ljava/sql/PreparedStatement;
            3   50     4             resultCount  I
            5   11     5                     sum  I
            8    9     6  parameterSpecification  Lorg/hibernate/param/ParameterSpecification;
           20   21     5                       e  Ljava/sql/SQLException;
           22   47     5                       i  I
           28   34     6                position  I
           29   33     7                       x  I
           44   45     6                       e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           3    12      12  any
           3    18      19  Class java.sql.SQLException
          25    36      36  any
          25    42      43  Class java.sql.SQLException
           1    48      50  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.TableBasedUpdateHandlerImpl this
        start local 1 // java.sql.PreparedStatement ps
        start local 2 // org.hibernate.engine.spi.SessionImplementor session
        start local 3 // int pos
         0: .line 192
            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.TableBasedUpdateHandlerImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/hibernate/hql/spi/TableBasedUpdateHandlerImpl;
            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 handleAddedParametersOnUpdate(java.sql.PreparedStatement, org.hibernate.engine.spi.SessionImplementor, int);
    descriptor: (Ljava/sql/PreparedStatement;Lorg/hibernate/engine/spi/SessionImplementor;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=4, args_size=4
        start local 0 // org.hibernate.hql.spi.TableBasedUpdateHandlerImpl this
        start local 1 // java.sql.PreparedStatement ps
        start local 2 // org.hibernate.engine.spi.SessionImplementor session
        start local 3 // int position
         0: .line 196
            return
        end local 3 // int position
        end local 2 // org.hibernate.engine.spi.SessionImplementor session
        end local 1 // java.sql.PreparedStatement ps
        end local 0 // org.hibernate.hql.spi.TableBasedUpdateHandlerImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/hibernate/hql/spi/TableBasedUpdateHandlerImpl;
            0    1     1        ps  Ljava/sql/PreparedStatement;
            0    1     2   session  Lorg/hibernate/engine/spi/SessionImplementor;
            0    1     3  position  I
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
          Name  Flags
      ps        
      session   
      position  
}
SourceFile: "TableBasedUpdateHandlerImpl.java"
InnerClasses:
  protected ProcessedWhereClause = org.hibernate.hql.spi.AbstractTableBasedBulkIdHandler$ProcessedWhereClause of org.hibernate.hql.spi.AbstractTableBasedBulkIdHandler
  public abstract UpdateHandler = org.hibernate.hql.spi.MultiTableBulkIdStrategy$UpdateHandler of org.hibernate.hql.spi.MultiTableBulkIdStrategy