public class org.hibernate.hql.internal.ast.exec.DeleteExecutor extends org.hibernate.hql.internal.ast.exec.BasicExecutor
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.hibernate.hql.internal.ast.exec.DeleteExecutor
super_class: org.hibernate.hql.internal.ast.exec.BasicExecutor
{
private static final org.jboss.logging.Logger LOG;
descriptor: Lorg/jboss/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
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;>;
private java.util.List<org.hibernate.param.ParameterSpecification> parameterSpecifications;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Lorg/hibernate/param/ParameterSpecification;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/hibernate/hql/internal/ast/exec/DeleteExecutor;
invokestatic org.jboss.logging.Logger.getLogger:(Ljava/lang/Class;)Lorg/jboss/logging/Logger;
putstatic org.hibernate.hql.internal.ast.exec.DeleteExecutor.LOG:Lorg/jboss/logging/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.hibernate.hql.internal.ast.HqlSqlWalker, org.hibernate.persister.entity.Queryable);
descriptor: (Lorg/hibernate/hql/internal/ast/HqlSqlWalker;Lorg/hibernate/persister/entity/Queryable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=16, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial org.hibernate.hql.internal.ast.exec.BasicExecutor.<init>:(Lorg/hibernate/hql/internal/ast/HqlSqlWalker;Lorg/hibernate/persister/entity/Queryable;)V
1: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.hibernate.hql.internal.ast.exec.DeleteExecutor.deletes:Ljava/util/List;
2: aload 1
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;
astore 3
start local 3 3: aload 3
invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getJdbcServices:()Lorg/hibernate/engine/jdbc/spi/JdbcServices;
invokeinterface org.hibernate.engine.jdbc.spi.JdbcServices.getJdbcEnvironment:()Lorg/hibernate/engine/jdbc/env/spi/JdbcEnvironment;
invokeinterface org.hibernate.engine.jdbc.env.spi.JdbcEnvironment.getDialect:()Lorg/hibernate/dialect/Dialect;
astore 4
start local 4 4: aload 1
invokevirtual org.hibernate.hql.internal.ast.HqlSqlWalker.getAST:()Lantlr/collections/AST;
checkcast org.hibernate.hql.internal.ast.tree.DeleteStatement
astore 5
start local 5 5: aload 5
invokevirtual org.hibernate.hql.internal.ast.tree.DeleteStatement.hasWhereClause:()Z
ifeq 14
6: aload 5
invokevirtual org.hibernate.hql.internal.ast.tree.DeleteStatement.getWhereClause:()Lantlr/collections/AST;
astore 7
start local 7 7: new org.hibernate.hql.internal.ast.SqlGenerator
dup
aload 3
invokespecial org.hibernate.hql.internal.ast.SqlGenerator.<init>:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
astore 8
start local 8 8: aload 8
aload 7
invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.whereClause:(Lantlr/collections/AST;)V
9: aload 0
aload 8
invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.getCollectedParameters:()Ljava/util/List;
putfield org.hibernate.hql.internal.ast.exec.DeleteExecutor.parameterSpecifications:Ljava/util/List;
10: aload 8
invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.getSQL:()Ljava/lang/String;
invokevirtual java.lang.String.length:()I
bipush 7
if_icmple 11
aload 8
invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.getSQL:()Ljava/lang/String;
goto 12
StackMap locals: org.hibernate.hql.internal.ast.exec.DeleteExecutor org.hibernate.hql.internal.ast.HqlSqlWalker org.hibernate.persister.entity.Queryable org.hibernate.engine.spi.SessionFactoryImplementor org.hibernate.dialect.Dialect org.hibernate.hql.internal.ast.tree.DeleteStatement top antlr.collections.AST org.hibernate.hql.internal.ast.SqlGenerator
StackMap stack:
11: ldc ""
StackMap locals:
StackMap stack: java.lang.String
12: astore 6
end local 8 end local 7 start local 6 13: goto 16
end local 6 14: StackMap locals: org.hibernate.hql.internal.ast.exec.DeleteExecutor org.hibernate.hql.internal.ast.HqlSqlWalker org.hibernate.persister.entity.Queryable org.hibernate.engine.spi.SessionFactoryImplementor org.hibernate.dialect.Dialect org.hibernate.hql.internal.ast.tree.DeleteStatement
StackMap stack:
aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.hibernate.hql.internal.ast.exec.DeleteExecutor.parameterSpecifications:Ljava/util/List;
15: ldc ""
astore 6
start local 6 16: StackMap locals: java.lang.String
StackMap stack:
aload 2
invokeinterface org.hibernate.persister.entity.Queryable.getPropertyTypes:()[Lorg/hibernate/type/Type;
dup
astore 10
arraylength
istore 9
iconst_0
istore 8
goto 40
StackMap locals: org.hibernate.hql.internal.ast.exec.DeleteExecutor org.hibernate.hql.internal.ast.HqlSqlWalker org.hibernate.persister.entity.Queryable org.hibernate.engine.spi.SessionFactoryImplementor org.hibernate.dialect.Dialect org.hibernate.hql.internal.ast.tree.DeleteStatement java.lang.String top int int org.hibernate.type.Type[]
StackMap stack:
17: aload 10
iload 8
aaload
astore 7
start local 7 18: aload 7
invokeinterface org.hibernate.type.Type.isCollectionType:()Z
ifeq 39
19: aload 7
checkcast org.hibernate.type.CollectionType
astore 11
start local 11 20: aload 3
invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
aload 11
invokevirtual org.hibernate.type.CollectionType.getRole:()Ljava/lang/String;
invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.collectionPersister:(Ljava/lang/String;)Lorg/hibernate/persister/collection/CollectionPersister;
checkcast org.hibernate.persister.collection.AbstractCollectionPersister
astore 12
start local 12 21: aload 12
invokevirtual org.hibernate.persister.collection.AbstractCollectionPersister.isManyToMany:()Z
ifeq 39
22: aload 2
invokeinterface org.hibernate.persister.entity.Queryable.getIdentifierColumnNames:()[Ljava/lang/String;
arraylength
iconst_1
if_icmple 28
23: aload 4
invokevirtual org.hibernate.dialect.Dialect.supportsTuplesInSubqueries:()Z
ifne 28
24: getstatic org.hibernate.hql.internal.ast.exec.DeleteExecutor.LOG:Lorg/jboss/logging/Logger;
25: ldc "This dialect is unable to cascade the delete into the many-to-many join table when the entity has multiple primary keys. Either properly setup cascading on the constraints or manually clear the associations prior to deleting the entities."
26: invokevirtual org.jboss.logging.Logger.warn:(Ljava/lang/Object;)V
27: goto 39
28: StackMap locals: org.hibernate.hql.internal.ast.exec.DeleteExecutor org.hibernate.hql.internal.ast.HqlSqlWalker org.hibernate.persister.entity.Queryable org.hibernate.engine.spi.SessionFactoryImplementor org.hibernate.dialect.Dialect org.hibernate.hql.internal.ast.tree.DeleteStatement java.lang.String org.hibernate.type.Type int int org.hibernate.type.Type[] org.hibernate.type.CollectionType org.hibernate.persister.collection.AbstractCollectionPersister
StackMap stack:
new java.lang.StringBuilder
dup
ldc "(select "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
29: ldc ", "
aload 2
invokeinterface org.hibernate.persister.entity.Queryable.getIdentifierColumnNames:()[Ljava/lang/String;
invokestatic java.lang.String.join:(Ljava/lang/CharSequence;[Ljava/lang/CharSequence;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " from "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
30: aload 2
invokeinterface org.hibernate.persister.entity.Queryable.getTableName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
31: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 13
start local 13 32: new java.lang.StringBuilder
dup
ldc "("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ", "
aload 12
invokevirtual org.hibernate.persister.collection.AbstractCollectionPersister.getKeyColumnNames:()[Ljava/lang/String;
invokestatic java.lang.String.join:(Ljava/lang/CharSequence;[Ljava/lang/CharSequence;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
33: ldc ") in "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 13
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
34: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 14
start local 14 35: new org.hibernate.sql.Delete
dup
invokespecial org.hibernate.sql.Delete.<init>:()V
aload 12
invokevirtual org.hibernate.persister.collection.AbstractCollectionPersister.getTableName:()Ljava/lang/String;
invokevirtual org.hibernate.sql.Delete.setTableName:(Ljava/lang/String;)Lorg/hibernate/sql/Delete;
aload 14
invokevirtual org.hibernate.sql.Delete.setWhere:(Ljava/lang/String;)Lorg/hibernate/sql/Delete;
astore 15
start local 15 36: aload 3
invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isCommentsEnabled:()Z
ifeq 38
37: aload 15
ldc "delete FKs in join table"
invokevirtual org.hibernate.sql.Delete.setComment:(Ljava/lang/String;)Lorg/hibernate/sql/Delete;
pop
38: StackMap locals: java.lang.String java.lang.String org.hibernate.sql.Delete
StackMap stack:
aload 0
getfield org.hibernate.hql.internal.ast.exec.DeleteExecutor.deletes:Ljava/util/List;
aload 15
invokevirtual org.hibernate.sql.Delete.toStatementString:()Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 15 end local 14 end local 13 end local 12 end local 11 end local 7 39: StackMap locals: org.hibernate.hql.internal.ast.exec.DeleteExecutor org.hibernate.hql.internal.ast.HqlSqlWalker org.hibernate.persister.entity.Queryable org.hibernate.engine.spi.SessionFactoryImplementor org.hibernate.dialect.Dialect org.hibernate.hql.internal.ast.tree.DeleteStatement java.lang.String top int int org.hibernate.type.Type[]
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
40: iload 8
iload 9
if_icmplt 17
end local 6 end local 5 41: goto 44
42: StackMap locals: org.hibernate.hql.internal.ast.exec.DeleteExecutor org.hibernate.hql.internal.ast.HqlSqlWalker org.hibernate.persister.entity.Queryable org.hibernate.engine.spi.SessionFactoryImplementor org.hibernate.dialect.Dialect
StackMap stack: antlr.RecognitionException
astore 5
start local 5 43: new org.hibernate.HibernateException
dup
ldc "Unable to delete the FKs in the join table!"
aload 5
invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 5 44: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 45 0 this Lorg/hibernate/hql/internal/ast/exec/DeleteExecutor;
0 45 1 walker Lorg/hibernate/hql/internal/ast/HqlSqlWalker;
0 45 2 persister Lorg/hibernate/persister/entity/Queryable;
3 45 3 factory Lorg/hibernate/engine/spi/SessionFactoryImplementor;
4 45 4 dialect Lorg/hibernate/dialect/Dialect;
5 41 5 deleteStatement Lorg/hibernate/hql/internal/ast/tree/DeleteStatement;
13 14 6 idSubselectWhere Ljava/lang/String;
16 41 6 idSubselectWhere Ljava/lang/String;
7 13 7 whereClause Lantlr/collections/AST;
8 13 8 gen Lorg/hibernate/hql/internal/ast/SqlGenerator;
18 39 7 type Lorg/hibernate/type/Type;
20 39 11 cType Lorg/hibernate/type/CollectionType;
21 39 12 cPersister Lorg/hibernate/persister/collection/AbstractCollectionPersister;
32 39 13 idSubselect Ljava/lang/String;
35 39 14 where Ljava/lang/String;
36 39 15 delete Lorg/hibernate/sql/Delete;
43 44 5 e Lantlr/RecognitionException;
Exception table:
from to target type
4 41 42 Class antlr.RecognitionException
MethodParameters:
Name Flags
walker
persister
public int execute(org.hibernate.engine.spi.QueryParameters, org.hibernate.engine.spi.SharedSessionContractImplementor);
descriptor: (Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.hibernate.hql.internal.ast.exec.DeleteExecutor.deletes:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 3
StackMap locals: org.hibernate.hql.internal.ast.exec.DeleteExecutor org.hibernate.engine.spi.QueryParameters org.hibernate.engine.spi.SharedSessionContractImplementor top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 2: aload 0
aload 1
aload 2
aload 3
aload 0
getfield org.hibernate.hql.internal.ast.exec.DeleteExecutor.parameterSpecifications:Ljava/util/List;
invokevirtual org.hibernate.hql.internal.ast.exec.DeleteExecutor.doExecute:(Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/String;Ljava/util/List;)I
pop
end local 3 3: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: aload 0
aload 1
aload 2
invokespecial org.hibernate.hql.internal.ast.exec.BasicExecutor.execute:(Lorg/hibernate/engine/spi/QueryParameters;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/hibernate/hql/internal/ast/exec/DeleteExecutor;
0 5 1 parameters Lorg/hibernate/engine/spi/QueryParameters;
0 5 2 session Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
2 3 3 delete Ljava/lang/String;
Exceptions:
throws org.hibernate.HibernateException
MethodParameters:
Name Flags
parameters
session
}
SourceFile: "DeleteExecutor.java"