public class org.hibernate.hql.internal.ast.exec.MultiTableUpdateExecutor implements org.hibernate.hql.internal.ast.exec.StatementExecutor
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.hibernate.hql.internal.ast.exec.MultiTableUpdateExecutor
super_class: java.lang.Object
{
private final org.hibernate.hql.spi.MultiTableBulkIdStrategy$UpdateHandler updateHandler;
descriptor: Lorg/hibernate/hql/spi/MultiTableBulkIdStrategy$UpdateHandler;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(org.hibernate.hql.internal.ast.HqlSqlWalker);
descriptor: (Lorg/hibernate/hql/internal/ast/HqlSqlWalker;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 // org.hibernate.hql.internal.ast.exec.MultiTableUpdateExecutor this
start local 1 // org.hibernate.hql.internal.ast.HqlSqlWalker walker
0: .line 43
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 44
aload 1 /* walker */
invokevirtual org.hibernate.hql.internal.ast.HqlSqlWalker.getSessionFactoryHelper:()Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
2: .line 45
invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
3: .line 46
invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
4: .line 47
invokevirtual org.hibernate.cfg.Settings.getMultiTableBulkIdStrategy:()Lorg/hibernate/hql/spi/MultiTableBulkIdStrategy;
5: .line 44
astore 2 /* strategy */
start local 2 // org.hibernate.hql.spi.MultiTableBulkIdStrategy strategy
6: .line 48
aload 0 /* this */
aload 2 /* strategy */
aload 1 /* walker */
invokevirtual org.hibernate.hql.internal.ast.HqlSqlWalker.getSessionFactoryHelper:()Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
aload 1 /* walker */
invokeinterface org.hibernate.hql.spi.MultiTableBulkIdStrategy.buildUpdateHandler:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/hql/internal/ast/HqlSqlWalker;)Lorg/hibernate/hql/spi/MultiTableBulkIdStrategy$UpdateHandler;
putfield org.hibernate.hql.internal.ast.exec.MultiTableUpdateExecutor.updateHandler:Lorg/hibernate/hql/spi/MultiTableBulkIdStrategy$UpdateHandler;
7: .line 49
return
end local 2 // org.hibernate.hql.spi.MultiTableBulkIdStrategy strategy
end local 1 // org.hibernate.hql.internal.ast.HqlSqlWalker walker
end local 0 // org.hibernate.hql.internal.ast.exec.MultiTableUpdateExecutor this
LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/hibernate/hql/internal/ast/exec/MultiTableUpdateExecutor;
0 8 1 walker Lorg/hibernate/hql/internal/ast/HqlSqlWalker;
6 8 2 strategy Lorg/hibernate/hql/spi/MultiTableBulkIdStrategy;
MethodParameters:
Name Flags
walker
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.internal.ast.exec.MultiTableUpdateExecutor this
0: .line 52
aload 0 /* this */
getfield org.hibernate.hql.internal.ast.exec.MultiTableUpdateExecutor.updateHandler:Lorg/hibernate/hql/spi/MultiTableBulkIdStrategy$UpdateHandler;
invokeinterface org.hibernate.hql.spi.MultiTableBulkIdStrategy$UpdateHandler.getSqlStatements:()[Ljava/lang/String;
areturn
end local 0 // org.hibernate.hql.internal.ast.exec.MultiTableUpdateExecutor this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hibernate/hql/internal/ast/exec/MultiTableUpdateExecutor;
public int execute(org.hibernate.engine.spi.QueryParameters, org.hibernate.engine.spi.SessionImplementor);
descriptor: (Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SessionImplementor;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=4, args_size=3
start local 0 // org.hibernate.hql.internal.ast.exec.MultiTableUpdateExecutor this
start local 1 // org.hibernate.engine.spi.QueryParameters parameters
start local 2 // org.hibernate.engine.spi.SessionImplementor session
0: .line 56
new org.hibernate.action.internal.BulkOperationCleanupAction
dup
aload 2 /* session */
iconst_1
anewarray org.hibernate.persister.entity.Queryable
dup
iconst_0
aload 0 /* this */
getfield org.hibernate.hql.internal.ast.exec.MultiTableUpdateExecutor.updateHandler:Lorg/hibernate/hql/spi/MultiTableBulkIdStrategy$UpdateHandler;
invokeinterface org.hibernate.hql.spi.MultiTableBulkIdStrategy$UpdateHandler.getTargetedQueryable:()Lorg/hibernate/persister/entity/Queryable;
aastore
invokespecial org.hibernate.action.internal.BulkOperationCleanupAction.<init>:(Lorg/hibernate/engine/spi/SessionImplementor;[Lorg/hibernate/persister/entity/Queryable;)V
astore 3 /* action */
start local 3 // org.hibernate.action.internal.BulkOperationCleanupAction action
1: .line 58
aload 2 /* session */
invokeinterface org.hibernate.engine.spi.SessionImplementor.isEventSource:()Z
ifeq 4
2: .line 59
aload 2 /* session */
checkcast org.hibernate.event.spi.EventSource
invokeinterface org.hibernate.event.spi.EventSource.getActionQueue:()Lorg/hibernate/engine/spi/ActionQueue;
aload 3 /* action */
invokevirtual org.hibernate.engine.spi.ActionQueue.addAction:(Lorg/hibernate/action/internal/BulkOperationCleanupAction;)V
3: .line 60
goto 5
4: .line 62
StackMap locals: org.hibernate.action.internal.BulkOperationCleanupAction
StackMap stack:
aload 3 /* action */
invokevirtual org.hibernate.action.internal.BulkOperationCleanupAction.getAfterTransactionCompletionProcess:()Lorg/hibernate/action/spi/AfterTransactionCompletionProcess;
iconst_1
aload 2 /* session */
invokeinterface org.hibernate.action.spi.AfterTransactionCompletionProcess.doAfterTransactionCompletion:(ZLorg/hibernate/engine/spi/SessionImplementor;)V
5: .line 65
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.hibernate.hql.internal.ast.exec.MultiTableUpdateExecutor.updateHandler:Lorg/hibernate/hql/spi/MultiTableBulkIdStrategy$UpdateHandler;
aload 2 /* session */
aload 1 /* parameters */
invokeinterface org.hibernate.hql.spi.MultiTableBulkIdStrategy$UpdateHandler.execute:(Lorg/hibernate/engine/spi/SessionImplementor;Lorg/hibernate/engine/spi/QueryParameters;)I
ireturn
end local 3 // org.hibernate.action.internal.BulkOperationCleanupAction action
end local 2 // org.hibernate.engine.spi.SessionImplementor session
end local 1 // org.hibernate.engine.spi.QueryParameters parameters
end local 0 // org.hibernate.hql.internal.ast.exec.MultiTableUpdateExecutor this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/hibernate/hql/internal/ast/exec/MultiTableUpdateExecutor;
0 6 1 parameters Lorg/hibernate/engine/spi/QueryParameters;
0 6 2 session Lorg/hibernate/engine/spi/SessionImplementor;
1 6 3 action Lorg/hibernate/action/internal/BulkOperationCleanupAction;
Exceptions:
throws org.hibernate.HibernateException
MethodParameters:
Name Flags
parameters
session
}
SourceFile: "MultiTableUpdateExecutor.java"
InnerClasses:
public abstract UpdateHandler = org.hibernate.hql.spi.MultiTableBulkIdStrategy$UpdateHandler of org.hibernate.hql.spi.MultiTableBulkIdStrategy