public abstract class org.hibernate.persister.entity.AbstractEntityPersister implements org.hibernate.persister.entity.OuterJoinLoadable, org.hibernate.persister.entity.Queryable, org.hibernate.metadata.ClassMetadata, org.hibernate.persister.entity.UniqueKeyLoadable, org.hibernate.persister.entity.SQLLoadable, org.hibernate.bytecode.instrumentation.spi.LazyPropertyInitializer, org.hibernate.id.PostInsertIdentityPersister, org.hibernate.persister.entity.Lockable
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.hibernate.persister.entity.AbstractEntityPersister
  super_class: java.lang.Object
{
  private static final org.hibernate.internal.CoreMessageLogger LOG;
    descriptor: Lorg/hibernate/internal/CoreMessageLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final java.lang.String ENTITY_CLASS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "class"

  private final org.hibernate.engine.spi.SessionFactoryImplementor factory;
    descriptor: Lorg/hibernate/engine/spi/SessionFactoryImplementor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hibernate.cache.spi.access.EntityRegionAccessStrategy cacheAccessStrategy;
    descriptor: Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy naturalIdRegionAccessStrategy;
    descriptor: Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final org.hibernate.persister.entity.AbstractEntityPersister$CacheEntryHelper cacheEntryHelper;
    descriptor: Lorg/hibernate/persister/entity/AbstractEntityPersister$CacheEntryHelper;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hibernate.tuple.entity.EntityMetamodel entityMetamodel;
    descriptor: Lorg/hibernate/tuple/entity/EntityMetamodel;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hibernate.tuple.entity.EntityTuplizer entityTuplizer;
    descriptor: Lorg/hibernate/tuple/entity/EntityTuplizer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

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

  private final int identifierColumnSpan;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private final int batchSize;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  protected final java.lang.String rowIdName;
    descriptor: Ljava/lang/String;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private final java.util.Set lazyProperties;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private final int[] propertyColumnSpans;
    descriptor: [I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

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

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

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

  private final boolean[][] propertyColumnUpdateable;
    descriptor: [[Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean[][] propertyColumnInsertable;
    descriptor: [[Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean[] propertyUniqueness;
    descriptor: [Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean[] propertySelectable;
    descriptor: [Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private final int[] lazyPropertyNumbers;
    descriptor: [I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hibernate.type.Type[] lazyPropertyTypes;
    descriptor: [Lorg/hibernate/type/Type;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

  private final org.hibernate.type.Type[] subclassPropertyTypeClosure;
    descriptor: [Lorg/hibernate/type/Type;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

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

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

  private final boolean[] subclassPropertyNullabilityClosure;
    descriptor: [Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean[] propertyDefinedOnSubclass;
    descriptor: [Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int[][] subclassPropertyColumnNumberClosure;
    descriptor: [[I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int[][] subclassPropertyFormulaNumberClosure;
    descriptor: [[I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hibernate.engine.spi.CascadeStyle[] subclassPropertyCascadeStyleClosure;
    descriptor: [Lorg/hibernate/engine/spi/CascadeStyle;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final boolean[] subclassColumnLazyClosure;
    descriptor: [Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final boolean[] subclassColumnSelectableClosure;
    descriptor: [Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

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

  private final boolean[] subclassFormulaLazyClosure;
    descriptor: [Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hibernate.internal.FilterHelper filterHelper;
    descriptor: Lorg/hibernate/internal/FilterHelper;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final java.util.Map uniqueKeyLoaders;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map lockers;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map loaders;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.lang.String sqlVersionSelectString;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String sqlSnapshotSelectString;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String sqlLazySelectString;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String sqlIdentityInsertString;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String sqlUpdateByRowIdString;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String sqlLazyUpdateByRowIdString;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String[] sqlDeleteStrings;
    descriptor: [Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String[] sqlInsertStrings;
    descriptor: [Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String[] sqlUpdateStrings;
    descriptor: [Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String[] sqlLazyUpdateStrings;
    descriptor: [Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String sqlInsertGeneratedValuesSelectString;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String sqlUpdateGeneratedValuesSelectString;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  protected boolean[] insertCallable;
    descriptor: [Z
    flags: (0x0004) ACC_PROTECTED

  protected boolean[] updateCallable;
    descriptor: [Z
    flags: (0x0004) ACC_PROTECTED

  protected boolean[] deleteCallable;
    descriptor: [Z
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String[] customSQLInsert;
    descriptor: [Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String[] customSQLUpdate;
    descriptor: [Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String[] customSQLDelete;
    descriptor: [Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected org.hibernate.engine.spi.ExecuteUpdateResultCheckStyle[] insertResultCheckStyles;
    descriptor: [Lorg/hibernate/engine/spi/ExecuteUpdateResultCheckStyle;
    flags: (0x0004) ACC_PROTECTED

  protected org.hibernate.engine.spi.ExecuteUpdateResultCheckStyle[] updateResultCheckStyles;
    descriptor: [Lorg/hibernate/engine/spi/ExecuteUpdateResultCheckStyle;
    flags: (0x0004) ACC_PROTECTED

  protected org.hibernate.engine.spi.ExecuteUpdateResultCheckStyle[] deleteResultCheckStyles;
    descriptor: [Lorg/hibernate/engine/spi/ExecuteUpdateResultCheckStyle;
    flags: (0x0004) ACC_PROTECTED

  private org.hibernate.id.insert.InsertGeneratedIdentifierDelegate identityDelegate;
    descriptor: Lorg/hibernate/id/insert/InsertGeneratedIdentifierDelegate;
    flags: (0x0002) ACC_PRIVATE

  private boolean[] tableHasColumns;
    descriptor: [Z
    flags: (0x0002) ACC_PRIVATE

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

  private org.hibernate.loader.entity.UniqueEntityLoader queryLoader;
    descriptor: Lorg/hibernate/loader/entity/UniqueEntityLoader;
    flags: (0x0002) ACC_PRIVATE

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

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

  private final java.util.Map subclassPropertyAliases;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map subclassPropertyColumnNames;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected final org.hibernate.persister.entity.BasicEntityPropertyMapping propertyMapping;
    descriptor: Lorg/hibernate/persister/entity/BasicEntityPropertyMapping;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private static final java.lang.String DISCRIMINATOR_ALIAS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "clazz_"

  private org.hibernate.persister.entity.DiscriminatorMetadata discriminatorMetadata;
    descriptor: Lorg/hibernate/persister/entity/DiscriminatorMetadata;
    flags: (0x0002) ACC_PRIVATE

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

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

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

  private java.lang.Boolean naturalIdIsNonNullable;
    descriptor: Ljava/lang/Boolean;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String cachedPkByNonNullableNaturalIdQuery;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private org.hibernate.persister.walking.spi.EntityIdentifierDefinition entityIdentifierDefinition;
    descriptor: Lorg/hibernate/persister/walking/spi/EntityIdentifierDefinition;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Iterable<org.hibernate.persister.walking.spi.AttributeDefinition> embeddedCompositeIdentifierAttributes;
    descriptor: Ljava/lang/Iterable;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/lang/Iterable<Lorg/hibernate/persister/walking/spi/AttributeDefinition;>;

  private java.lang.Iterable<org.hibernate.persister.walking.spi.AttributeDefinition> attributeDefinitions;
    descriptor: Ljava/lang/Iterable;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/lang/Iterable<Lorg/hibernate/persister/walking/spi/AttributeDefinition;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 156
            ldc Lorg/hibernate/internal/CoreMessageLogger;
            ldc Lorg/hibernate/persister/entity/AbstractEntityPersister;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic org.jboss.logging.Logger.getMessageLogger:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;
            checkcast org.hibernate.internal.CoreMessageLogger
            putstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         1: .line 325
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void addDiscriminatorToInsert(org.hibernate.sql.Insert);
    descriptor: (Lorg/hibernate/sql/Insert;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.sql.Insert insert
         0: .line 289
            return
        end local 1 // org.hibernate.sql.Insert insert
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  insert  Lorg/hibernate/sql/Insert;
    MethodParameters:
        Name  Flags
      insert  

  protected void addDiscriminatorToSelect(org.hibernate.sql.SelectFragment, java.lang.String, java.lang.String);
    descriptor: (Lorg/hibernate/sql/SelectFragment;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=4, args_size=4
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.sql.SelectFragment select
        start local 2 // java.lang.String name
        start local 3 // java.lang.String suffix
         0: .line 291
            return
        end local 3 // java.lang.String suffix
        end local 2 // java.lang.String name
        end local 1 // org.hibernate.sql.SelectFragment select
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  select  Lorg/hibernate/sql/SelectFragment;
            0    1     2    name  Ljava/lang/String;
            0    1     3  suffix  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      select  
      name    
      suffix  

  protected abstract int[] getSubclassColumnTableNumberClosure();
    descriptor: ()[I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract int[] getSubclassFormulaTableNumberClosure();
    descriptor: ()[I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  public abstract java.lang.String getSubclassTableName(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      j     

  protected abstract java.lang.String[] getSubclassTableKeyColumns(int);
    descriptor: (I)[Ljava/lang/String;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      j     

  protected abstract boolean isClassOrSuperclassTable(int);
    descriptor: (I)Z
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      j     

  protected abstract int getSubclassTableSpan();
    descriptor: ()I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract int getTableSpan();
    descriptor: ()I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract boolean isTableCascadeDeleteEnabled(int);
    descriptor: (I)Z
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      j     

  protected abstract java.lang.String getTableName(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      j     

  protected abstract java.lang.String[] getKeyColumns(int);
    descriptor: (I)[Ljava/lang/String;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      j     

  protected abstract boolean isPropertyOfTable(int, int);
    descriptor: (II)Z
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
          Name  Flags
      property  
      j         

  protected abstract int[] getPropertyTableNumbersInSelect();
    descriptor: ()[I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract int[] getPropertyTableNumbers();
    descriptor: ()[I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract int getSubclassPropertyTableNumber(int);
    descriptor: (I)I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      i     

  protected abstract java.lang.String filterFragment(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
       Name  Flags
      alias  

  protected abstract java.lang.String filterFragment(java.lang.String, java.util.Set<java.lang.String>);
    descriptor: (Ljava/lang/String;Ljava/util/Set;)Ljava/lang/String;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Signature: (Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;)Ljava/lang/String;
    MethodParameters:
                     Name  Flags
      alias                
      treatAsDeclarations  

  public java.lang.String getDiscriminatorColumnName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 328
            ldc "clazz_"
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.String getDiscriminatorColumnReaders();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 332
            ldc "clazz_"
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.String getDiscriminatorColumnReaderTemplate();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 336
            ldc "clazz_"
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected java.lang.String getDiscriminatorAlias();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 340
            ldc "clazz_"
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected java.lang.String getDiscriminatorFormulaTemplate();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 344
            aconst_null
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected boolean isInverseTable(int);
    descriptor: (I)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int j
         0: .line 348
            iconst_0
            ireturn
        end local 1 // int j
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1     j  I
    MethodParameters:
      Name  Flags
      j     

  protected boolean isNullableTable(int);
    descriptor: (I)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int j
         0: .line 352
            iconst_0
            ireturn
        end local 1 // int j
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1     j  I
    MethodParameters:
      Name  Flags
      j     

  protected boolean isNullableSubclassTable(int);
    descriptor: (I)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int j
         0: .line 356
            iconst_0
            ireturn
        end local 1 // int j
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1     j  I
    MethodParameters:
      Name  Flags
      j     

  protected boolean isInverseSubclassTable(int);
    descriptor: (I)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int j
         0: .line 360
            iconst_0
            ireturn
        end local 1 // int j
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1     j  I
    MethodParameters:
      Name  Flags
      j     

  public boolean isSubclassEntityName(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String entityName
         0: .line 364
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getSubclassEntityNames:()Ljava/util/Set;
            aload 1 /* entityName */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  entityName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      entityName  

  private boolean[] getTableHasColumns();
    descriptor: ()[Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 368
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.tableHasColumns:[Z
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.String[] getRootTableKeyColumnNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 372
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.rootTableKeyColumnNames:[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected java.lang.String[] getSQLUpdateByRowIdStrings();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 376
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlUpdateByRowIdString:Ljava/lang/String;
            ifnonnull 2
         1: .line 377
            new org.hibernate.AssertionFailure
            dup
            ldc "no update by row id"
            invokespecial org.hibernate.AssertionFailure.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 379
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableSpan:()I
            iconst_1
            iadd
            anewarray java.lang.String
            astore 1 /* result */
        start local 1 // java.lang.String[] result
         3: .line 380
            aload 1 /* result */
            iconst_0
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlUpdateByRowIdString:Ljava/lang/String;
            aastore
         4: .line 381
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlUpdateStrings:[Ljava/lang/String;
            iconst_0
            aload 1 /* result */
            iconst_1
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableSpan:()I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         5: .line 382
            aload 1 /* result */
            areturn
        end local 1 // java.lang.String[] result
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            3    6     1  result  [Ljava/lang/String;

  protected java.lang.String[] getSQLLazyUpdateByRowIdStrings();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 386
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlLazyUpdateByRowIdString:Ljava/lang/String;
            ifnonnull 2
         1: .line 387
            new org.hibernate.AssertionFailure
            dup
            ldc "no update by row id"
            invokespecial org.hibernate.AssertionFailure.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 389
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableSpan:()I
            anewarray java.lang.String
            astore 1 /* result */
        start local 1 // java.lang.String[] result
         3: .line 390
            aload 1 /* result */
            iconst_0
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlLazyUpdateByRowIdString:Ljava/lang/String;
            aastore
         4: .line 391
            iconst_1
            istore 2 /* i */
        start local 2 // int i
         5: goto 8
         6: .line 392
      StackMap locals: java.lang.String[] int
      StackMap stack:
            aload 1 /* result */
            iload 2 /* i */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlLazyUpdateStrings:[Ljava/lang/String;
            iload 2 /* i */
            aaload
            aastore
         7: .line 391
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 2 /* i */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableSpan:()I
            if_icmplt 6
        end local 2 // int i
         9: .line 394
            aload 1 /* result */
            areturn
        end local 1 // java.lang.String[] result
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            3   10     1  result  [Ljava/lang/String;
            5    9     2       i  I

  protected java.lang.String getSQLSnapshotSelectString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 398
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlSnapshotSelectString:Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected java.lang.String getSQLLazySelectString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 402
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlLazySelectString:Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected java.lang.String[] getSQLDeleteStrings();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 406
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlDeleteStrings:[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected java.lang.String[] getSQLInsertStrings();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 410
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlInsertStrings:[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected java.lang.String[] getSQLUpdateStrings();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 414
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlUpdateStrings:[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected java.lang.String[] getSQLLazyUpdateStrings();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 418
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlLazyUpdateStrings:[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected java.lang.String getSQLIdentityInsertString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 427
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlIdentityInsertString:Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected java.lang.String getVersionSelectString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 431
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlVersionSelectString:Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected boolean isInsertCallable(int);
    descriptor: (I)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int j
         0: .line 435
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.insertCallable:[Z
            iload 1 /* j */
            baload
            ireturn
        end local 1 // int j
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1     j  I
    MethodParameters:
      Name  Flags
      j     

  protected boolean isUpdateCallable(int);
    descriptor: (I)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int j
         0: .line 439
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.updateCallable:[Z
            iload 1 /* j */
            baload
            ireturn
        end local 1 // int j
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1     j  I
    MethodParameters:
      Name  Flags
      j     

  protected boolean isDeleteCallable(int);
    descriptor: (I)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int j
         0: .line 443
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.deleteCallable:[Z
            iload 1 /* j */
            baload
            ireturn
        end local 1 // int j
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1     j  I
    MethodParameters:
      Name  Flags
      j     

  protected boolean isSubclassPropertyDeferred(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String propertyName
        start local 2 // java.lang.String entityName
         0: .line 447
            iconst_0
            ireturn
        end local 2 // java.lang.String entityName
        end local 1 // java.lang.String propertyName
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  propertyName  Ljava/lang/String;
            0    1     2    entityName  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      propertyName  
      entityName    

  protected boolean isSubclassTableSequentialSelect(int);
    descriptor: (I)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int j
         0: .line 451
            iconst_0
            ireturn
        end local 1 // int j
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1     j  I
    MethodParameters:
      Name  Flags
      j     

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

  protected boolean[] getTableUpdateNeeded(int[], boolean);
    descriptor: ([IZ)[Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int[] dirtyProperties
        start local 2 // boolean hasDirtyCollection
         0: .line 471
            aload 1 /* dirtyProperties */
            ifnonnull 2
         1: .line 472
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableHasColumns:()[Z
            areturn
         2: .line 475
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyUpdateability:()[Z
            astore 3 /* updateability */
        start local 3 // boolean[] updateability
         3: .line 476
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyTableNumbers:()[I
            astore 4 /* propertyTableNumbers */
        start local 4 // int[] propertyTableNumbers
         4: .line 477
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableSpan:()I
            newarray 4
            astore 5 /* tableUpdateNeeded */
        start local 5 // boolean[] tableUpdateNeeded
         5: .line 478
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         6: goto 15
         7: .line 479
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int[] int boolean[] int[] boolean[] int
      StackMap stack:
            aload 1 /* dirtyProperties */
            iload 6 /* i */
            iaload
            istore 7 /* property */
        start local 7 // int property
         8: .line 480
            aload 4 /* propertyTableNumbers */
            iload 7 /* property */
            iaload
            istore 8 /* table */
        start local 8 // int table
         9: .line 481
            aload 5 /* tableUpdateNeeded */
            iload 8 /* table */
            aload 5 /* tableUpdateNeeded */
            iload 8 /* table */
            baload
            ifne 12
        10: .line 482
            aload 0 /* this */
            iload 7 /* property */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyColumnSpan:(I)I
            ifle 11
            aload 3 /* updateability */
            iload 7 /* property */
            baload
            ifne 12
        11: .line 481
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int[] int boolean[] int[] boolean[] int int int
      StackMap stack: boolean[] int
            iconst_0
            goto 13
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int[] int boolean[] int[] boolean[] int int int
      StackMap stack: boolean[] int
        12: iconst_1
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int[] int boolean[] int[] boolean[] int int int
      StackMap stack: boolean[] int int
        13: bastore
        end local 8 // int table
        end local 7 // int property
        14: .line 478
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 6 /* i */
            aload 1 /* dirtyProperties */
            arraylength
            if_icmplt 7
        end local 6 // int i
        16: .line 484
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifeq 22
        17: .line 485
            aload 5 /* tableUpdateNeeded */
            iconst_0
            aload 5 /* tableUpdateNeeded */
            iconst_0
            baload
            ifne 20
        18: .line 486
            aload 1 /* dirtyProperties */
            iload 2 /* hasDirtyCollection */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyVersionability:()[Z
            invokestatic org.hibernate.engine.internal.Versioning.isVersionIncrementRequired:([IZ[Z)Z
            ifne 20
        19: .line 485
            iconst_0
            goto 21
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int[] int boolean[] int[] boolean[]
      StackMap stack: boolean[] int
        20: iconst_1
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int[] int boolean[] int[] boolean[]
      StackMap stack: boolean[] int int
        21: bastore
        22: .line 488
      StackMap locals:
      StackMap stack:
            aload 5 /* tableUpdateNeeded */
            areturn
        end local 5 // boolean[] tableUpdateNeeded
        end local 4 // int[] propertyTableNumbers
        end local 3 // boolean[] updateability
        end local 2 // boolean hasDirtyCollection
        end local 1 // int[] dirtyProperties
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   23     0                  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   23     1       dirtyProperties  [I
            0   23     2    hasDirtyCollection  Z
            3   23     3         updateability  [Z
            4   23     4  propertyTableNumbers  [I
            5   23     5     tableUpdateNeeded  [Z
            6   16     6                     i  I
            8   14     7              property  I
            9   14     8                 table  I
    MethodParameters:
                    Name  Flags
      dirtyProperties     final
      hasDirtyCollection  

  public boolean hasRowId();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 493
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.rowIdName:Ljava/lang/String;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected boolean[][] getPropertyColumnUpdateable();
    descriptor: ()[[Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 497
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnUpdateable:[[Z
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected boolean[][] getPropertyColumnInsertable();
    descriptor: ()[[Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 501
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnInsertable:[[Z
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected boolean[] getPropertySelectable();
    descriptor: ()[Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 505
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertySelectable:[Z
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public void <init>(org.hibernate.mapping.PersistentClass, org.hibernate.cache.spi.access.EntityRegionAccessStrategy, org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy, org.hibernate.engine.spi.SessionFactoryImplementor);
    descriptor: (Lorg/hibernate/mapping/PersistentClass;Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=53, args_size=5
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.mapping.PersistentClass persistentClass
        start local 2 // org.hibernate.cache.spi.access.EntityRegionAccessStrategy cacheAccessStrategy
        start local 3 // org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy naturalIdRegionAccessStrategy
        start local 4 // org.hibernate.engine.spi.SessionFactoryImplementor factory
         0: .line 508
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 202
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.hibernate.persister.entity.AbstractEntityPersister.lobProperties:Ljava/util/List;
         2: .line 239
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.hibernate.persister.entity.AbstractEntityPersister.affectingFetchProfileNames:Ljava/util/Set;
         3: .line 241
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.hibernate.persister.entity.AbstractEntityPersister.uniqueKeyLoaders:Ljava/util/Map;
         4: .line 242
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.hibernate.persister.entity.AbstractEntityPersister.lockers:Ljava/util/Map;
         5: .line 243
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.hibernate.persister.entity.AbstractEntityPersister.loaders:Ljava/util/Map;
         6: .line 284
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyAliases:Ljava/util/Map;
         7: .line 285
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNames:Ljava/util/Map;
         8: .line 515
            aload 0 /* this */
            aload 4 /* factory */
            putfield org.hibernate.persister.entity.AbstractEntityPersister.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
         9: .line 516
            aload 0 /* this */
            aload 2 /* cacheAccessStrategy */
            putfield org.hibernate.persister.entity.AbstractEntityPersister.cacheAccessStrategy:Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;
        10: .line 517
            aload 0 /* this */
            aload 3 /* naturalIdRegionAccessStrategy */
            putfield org.hibernate.persister.entity.AbstractEntityPersister.naturalIdRegionAccessStrategy:Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;
        11: .line 518
            aload 0 /* this */
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.isLazyPropertiesCacheable:()Z
            putfield org.hibernate.persister.entity.AbstractEntityPersister.isLazyPropertiesCacheable:Z
        12: .line 520
            aload 0 /* this */
            new org.hibernate.tuple.entity.EntityMetamodel
            dup
            aload 1 /* persistentClass */
            aload 0 /* this */
            aload 4 /* factory */
            invokespecial org.hibernate.tuple.entity.EntityMetamodel.<init>:(Lorg/hibernate/mapping/PersistentClass;Lorg/hibernate/persister/entity/AbstractEntityPersister;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
            putfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
        13: .line 521
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getTuplizer:()Lorg/hibernate/tuple/entity/EntityTuplizer;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.entityTuplizer:Lorg/hibernate/tuple/entity/EntityTuplizer;
        14: .line 524
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.getBatchSize:()I
            istore 5 /* batch */
        start local 5 // int batch
        15: .line 525
            iload 5 /* batch */
            iconst_m1
            if_icmpne 17
        16: .line 526
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.getDefaultBatchFetchSize:()I
            istore 5 /* batch */
        17: .line 528
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int
      StackMap stack:
            aload 0 /* this */
            iload 5 /* batch */
            putfield org.hibernate.persister.entity.AbstractEntityPersister.batchSize:I
        18: .line 529
            aload 0 /* this */
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.hasSubselectLoadableCollections:()Z
            putfield org.hibernate.persister.entity.AbstractEntityPersister.hasSubselectLoadableCollections:Z
        19: .line 531
            aload 0 /* this */
            new org.hibernate.persister.entity.BasicEntityPropertyMapping
            dup
            aload 0 /* this */
            invokespecial org.hibernate.persister.entity.BasicEntityPropertyMapping.<init>:(Lorg/hibernate/persister/entity/AbstractEntityPersister;)V
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyMapping:Lorg/hibernate/persister/entity/BasicEntityPropertyMapping;
        20: .line 535
            aload 0 /* this */
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.getIdentifier:()Lorg/hibernate/mapping/KeyValue;
            invokeinterface org.hibernate.mapping.KeyValue.getColumnSpan:()I
            putfield org.hibernate.persister.entity.AbstractEntityPersister.identifierColumnSpan:I
        21: .line 536
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.identifierColumnSpan:I
            anewarray java.lang.String
            putfield org.hibernate.persister.entity.AbstractEntityPersister.rootTableKeyColumnNames:[Ljava/lang/String;
        22: .line 537
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.identifierColumnSpan:I
            anewarray java.lang.String
            putfield org.hibernate.persister.entity.AbstractEntityPersister.rootTableKeyColumnReaders:[Ljava/lang/String;
        23: .line 538
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.identifierColumnSpan:I
            anewarray java.lang.String
            putfield org.hibernate.persister.entity.AbstractEntityPersister.rootTableKeyColumnReaderTemplates:[Ljava/lang/String;
        24: .line 539
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.identifierColumnSpan:I
            anewarray java.lang.String
            putfield org.hibernate.persister.entity.AbstractEntityPersister.identifierAliases:[Ljava/lang/String;
        25: .line 541
            aload 0 /* this */
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.getRootTable:()Lorg/hibernate/mapping/Table;
            invokevirtual org.hibernate.mapping.Table.getRowId:()Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.rowIdName:Ljava/lang/String;
        26: .line 543
            aload 0 /* this */
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.getLoaderName:()Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.loaderName:Ljava/lang/String;
        27: .line 545
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.getIdentifier:()Lorg/hibernate/mapping/KeyValue;
            invokeinterface org.hibernate.mapping.KeyValue.getColumnIterator:()Ljava/util/Iterator;
            astore 6 /* iter */
        start local 6 // java.util.Iterator iter
        28: .line 546
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        29: .line 547
            goto 36
        30: .line 548
      StackMap locals: java.util.Iterator int
      StackMap stack:
            aload 6 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Column
            astore 8 /* col */
        start local 8 // org.hibernate.mapping.Column col
        31: .line 549
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.rootTableKeyColumnNames:[Ljava/lang/String;
            iload 7 /* i */
            aload 8 /* col */
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokevirtual org.hibernate.mapping.Column.getQuotedName:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            aastore
        32: .line 550
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.rootTableKeyColumnReaders:[Ljava/lang/String;
            iload 7 /* i */
            aload 8 /* col */
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokevirtual org.hibernate.mapping.Column.getReadExpr:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            aastore
        33: .line 551
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.rootTableKeyColumnReaderTemplates:[Ljava/lang/String;
            iload 7 /* i */
            aload 8 /* col */
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSqlFunctionRegistry:()Lorg/hibernate/dialect/function/SQLFunctionRegistry;
            invokevirtual org.hibernate.mapping.Column.getTemplate:(Lorg/hibernate/dialect/Dialect;Lorg/hibernate/dialect/function/SQLFunctionRegistry;)Ljava/lang/String;
            aastore
        34: .line 552
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.identifierAliases:[Ljava/lang/String;
            iload 7 /* i */
            aload 8 /* col */
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.getRootTable:()Lorg/hibernate/mapping/Table;
            invokevirtual org.hibernate.mapping.Column.getAlias:(Lorg/hibernate/dialect/Dialect;Lorg/hibernate/mapping/Table;)Ljava/lang/String;
            aastore
        35: .line 553
            iinc 7 /* i */ 1
        end local 8 // org.hibernate.mapping.Column col
        36: .line 547
      StackMap locals:
      StackMap stack:
            aload 6 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 30
        37: .line 558
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.isVersioned:()Z
            ifeq 40
        38: .line 559
            aload 0 /* this */
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.getVersion:()Lorg/hibernate/mapping/Property;
            invokevirtual org.hibernate.mapping.Property.getColumnIterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Column
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokevirtual org.hibernate.mapping.Column.getQuotedName:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.versionColumnName:Ljava/lang/String;
        39: .line 560
            goto 41
        40: .line 562
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.hibernate.persister.entity.AbstractEntityPersister.versionColumnName:Ljava/lang/String;
        41: .line 567
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.getWhere:()Ljava/lang/String;
            invokestatic org.hibernate.internal.util.StringHelper.isNotEmpty:(Ljava/lang/String;)Z
            ifeq 42
            new java.lang.StringBuilder
            dup
            ldc "( "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.getWhere:()Ljava/lang/String;
            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;
            goto 43
      StackMap locals:
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister
        42: aconst_null
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int java.util.Iterator int
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String
        43: putfield org.hibernate.persister.entity.AbstractEntityPersister.sqlWhereString:Ljava/lang/String;
        44: .line 568
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlWhereString:Ljava/lang/String;
            ifnonnull 46
        45: .line 569
            aconst_null
            goto 47
        46: .line 570
      StackMap locals:
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlWhereString:Ljava/lang/String;
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSqlFunctionRegistry:()Lorg/hibernate/dialect/function/SQLFunctionRegistry;
            invokestatic org.hibernate.sql.Template.renderWhereStringTemplate:(Ljava/lang/String;Lorg/hibernate/dialect/Dialect;Lorg/hibernate/dialect/function/SQLFunctionRegistry;)Ljava/lang/String;
        47: .line 568
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int java.util.Iterator int
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String
            putfield org.hibernate.persister.entity.AbstractEntityPersister.sqlWhereStringTemplate:Ljava/lang/String;
        48: .line 574
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isInstrumented:()Z
            istore 8 /* lazyAvailable */
        start local 8 // boolean lazyAvailable
        49: .line 576
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertySpan:()I
            istore 9 /* hydrateSpan */
        start local 9 // int hydrateSpan
        50: .line 577
            aload 0 /* this */
            iload 9 /* hydrateSpan */
            newarray 10
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnSpans:[I
        51: .line 578
            aload 0 /* this */
            iload 9 /* hydrateSpan */
            anewarray java.lang.String
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertySubclassNames:[Ljava/lang/String;
        52: .line 579
            aload 0 /* this */
            iload 9 /* hydrateSpan */
            anewarray java.lang.String[]
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnAliases:[[Ljava/lang/String;
        53: .line 580
            aload 0 /* this */
            iload 9 /* hydrateSpan */
            anewarray java.lang.String[]
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnNames:[[Ljava/lang/String;
        54: .line 581
            aload 0 /* this */
            iload 9 /* hydrateSpan */
            anewarray java.lang.String[]
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnFormulaTemplates:[[Ljava/lang/String;
        55: .line 582
            aload 0 /* this */
            iload 9 /* hydrateSpan */
            anewarray java.lang.String[]
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnReaderTemplates:[[Ljava/lang/String;
        56: .line 583
            aload 0 /* this */
            iload 9 /* hydrateSpan */
            anewarray java.lang.String[]
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnWriters:[[Ljava/lang/String;
        57: .line 584
            aload 0 /* this */
            iload 9 /* hydrateSpan */
            newarray 4
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyUniqueness:[Z
        58: .line 585
            aload 0 /* this */
            iload 9 /* hydrateSpan */
            newarray 4
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertySelectable:[Z
        59: .line 586
            aload 0 /* this */
            iload 9 /* hydrateSpan */
            anewarray boolean[]
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnUpdateable:[[Z
        60: .line 587
            aload 0 /* this */
            iload 9 /* hydrateSpan */
            anewarray boolean[]
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnInsertable:[[Z
        61: .line 588
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 10 /* thisClassProperties */
        start local 10 // java.util.HashSet thisClassProperties
        62: .line 590
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.hibernate.persister.entity.AbstractEntityPersister.lazyProperties:Ljava/util/Set;
        63: .line 591
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 11 /* lazyNames */
        start local 11 // java.util.ArrayList lazyNames
        64: .line 592
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 12 /* lazyNumbers */
        start local 12 // java.util.ArrayList lazyNumbers
        65: .line 593
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 13 /* lazyTypes */
        start local 13 // java.util.ArrayList lazyTypes
        66: .line 594
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 14 /* lazyColAliases */
        start local 14 // java.util.ArrayList lazyColAliases
        67: .line 596
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.getPropertyClosureIterator:()Ljava/util/Iterator;
            astore 6 /* iter */
        68: .line 597
            iconst_0
            istore 7 /* i */
        69: .line 598
            iconst_0
            istore 15 /* foundFormula */
        start local 15 // boolean foundFormula
        70: .line 599
            goto 114
        71: .line 600
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int java.util.Iterator int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int
      StackMap stack:
            aload 6 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Property
            astore 16 /* prop */
        start local 16 // org.hibernate.mapping.Property prop
        72: .line 601
            aload 10 /* thisClassProperties */
            aload 16 /* prop */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        73: .line 603
            aload 16 /* prop */
            invokevirtual org.hibernate.mapping.Property.getColumnSpan:()I
            istore 17 /* span */
        start local 17 // int span
        74: .line 604
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnSpans:[I
            iload 7 /* i */
            iload 17 /* span */
            iastore
        75: .line 605
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertySubclassNames:[Ljava/lang/String;
            iload 7 /* i */
            aload 16 /* prop */
            invokevirtual org.hibernate.mapping.Property.getPersistentClass:()Lorg/hibernate/mapping/PersistentClass;
            invokevirtual org.hibernate.mapping.PersistentClass.getEntityName:()Ljava/lang/String;
            aastore
        76: .line 606
            iload 17 /* span */
            anewarray java.lang.String
            astore 18 /* colNames */
        start local 18 // java.lang.String[] colNames
        77: .line 607
            iload 17 /* span */
            anewarray java.lang.String
            astore 19 /* colAliases */
        start local 19 // java.lang.String[] colAliases
        78: .line 608
            iload 17 /* span */
            anewarray java.lang.String
            astore 20 /* colReaderTemplates */
        start local 20 // java.lang.String[] colReaderTemplates
        79: .line 609
            iload 17 /* span */
            anewarray java.lang.String
            astore 21 /* colWriters */
        start local 21 // java.lang.String[] colWriters
        80: .line 610
            iload 17 /* span */
            anewarray java.lang.String
            astore 22 /* formulaTemplates */
        start local 22 // java.lang.String[] formulaTemplates
        81: .line 611
            aload 16 /* prop */
            invokevirtual org.hibernate.mapping.Property.getColumnIterator:()Ljava/util/Iterator;
            astore 23 /* colIter */
        start local 23 // java.util.Iterator colIter
        82: .line 612
            iconst_0
            istore 24 /* k */
        start local 24 // int k
        83: .line 613
            goto 95
        84: .line 614
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int java.util.Iterator int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int org.hibernate.mapping.Property int java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[] java.util.Iterator int
      StackMap stack:
            aload 23 /* colIter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Selectable
            astore 25 /* thing */
        start local 25 // org.hibernate.mapping.Selectable thing
        85: .line 615
            aload 19 /* colAliases */
            iload 24 /* k */
            aload 25 /* thing */
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            aload 16 /* prop */
            invokevirtual org.hibernate.mapping.Property.getValue:()Lorg/hibernate/mapping/Value;
            invokeinterface org.hibernate.mapping.Value.getTable:()Lorg/hibernate/mapping/Table;
            invokeinterface org.hibernate.mapping.Selectable.getAlias:(Lorg/hibernate/dialect/Dialect;Lorg/hibernate/mapping/Table;)Ljava/lang/String;
            aastore
        86: .line 616
            aload 25 /* thing */
            invokeinterface org.hibernate.mapping.Selectable.isFormula:()Z
            ifeq 90
        87: .line 617
            iconst_1
            istore 15 /* foundFormula */
        88: .line 618
            aload 22 /* formulaTemplates */
            iload 24 /* k */
            aload 25 /* thing */
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSqlFunctionRegistry:()Lorg/hibernate/dialect/function/SQLFunctionRegistry;
            invokeinterface org.hibernate.mapping.Selectable.getTemplate:(Lorg/hibernate/dialect/Dialect;Lorg/hibernate/dialect/function/SQLFunctionRegistry;)Ljava/lang/String;
            aastore
        89: .line 619
            goto 94
        90: .line 621
      StackMap locals: org.hibernate.mapping.Selectable
      StackMap stack:
            aload 25 /* thing */
            checkcast org.hibernate.mapping.Column
            astore 26 /* col */
        start local 26 // org.hibernate.mapping.Column col
        91: .line 622
            aload 18 /* colNames */
            iload 24 /* k */
            aload 26 /* col */
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokevirtual org.hibernate.mapping.Column.getQuotedName:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            aastore
        92: .line 623
            aload 20 /* colReaderTemplates */
            iload 24 /* k */
            aload 26 /* col */
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSqlFunctionRegistry:()Lorg/hibernate/dialect/function/SQLFunctionRegistry;
            invokevirtual org.hibernate.mapping.Column.getTemplate:(Lorg/hibernate/dialect/Dialect;Lorg/hibernate/dialect/function/SQLFunctionRegistry;)Ljava/lang/String;
            aastore
        93: .line 624
            aload 21 /* colWriters */
            iload 24 /* k */
            aload 26 /* col */
            invokevirtual org.hibernate.mapping.Column.getWriteExpr:()Ljava/lang/String;
            aastore
        end local 26 // org.hibernate.mapping.Column col
        94: .line 626
      StackMap locals:
      StackMap stack:
            iinc 24 /* k */ 1
        end local 25 // org.hibernate.mapping.Selectable thing
        95: .line 613
      StackMap locals:
      StackMap stack:
            aload 23 /* colIter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 84
        96: .line 628
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnNames:[[Ljava/lang/String;
            iload 7 /* i */
            aload 18 /* colNames */
            aastore
        97: .line 629
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnFormulaTemplates:[[Ljava/lang/String;
            iload 7 /* i */
            aload 22 /* formulaTemplates */
            aastore
        98: .line 630
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnReaderTemplates:[[Ljava/lang/String;
            iload 7 /* i */
            aload 20 /* colReaderTemplates */
            aastore
        99: .line 631
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnWriters:[[Ljava/lang/String;
            iload 7 /* i */
            aload 21 /* colWriters */
            aastore
       100: .line 632
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnAliases:[[Ljava/lang/String;
            iload 7 /* i */
            aload 19 /* colAliases */
            aastore
       101: .line 634
            iload 8 /* lazyAvailable */
            ifeq 107
            aload 16 /* prop */
            invokevirtual org.hibernate.mapping.Property.isLazy:()Z
            ifeq 107
       102: .line 635
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lazyProperties:Ljava/util/Set;
            aload 16 /* prop */
            invokevirtual org.hibernate.mapping.Property.getName:()Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
       103: .line 636
            aload 11 /* lazyNames */
            aload 16 /* prop */
            invokevirtual org.hibernate.mapping.Property.getName:()Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       104: .line 637
            aload 12 /* lazyNumbers */
            iload 7 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       105: .line 638
            aload 13 /* lazyTypes */
            aload 16 /* prop */
            invokevirtual org.hibernate.mapping.Property.getValue:()Lorg/hibernate/mapping/Value;
            invokeinterface org.hibernate.mapping.Value.getType:()Lorg/hibernate/type/Type;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       106: .line 639
            aload 14 /* lazyColAliases */
            aload 19 /* colAliases */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       107: .line 642
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnUpdateable:[[Z
            iload 7 /* i */
            aload 16 /* prop */
            invokevirtual org.hibernate.mapping.Property.getValue:()Lorg/hibernate/mapping/Value;
            invokeinterface org.hibernate.mapping.Value.getColumnUpdateability:()[Z
            aastore
       108: .line 643
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnInsertable:[[Z
            iload 7 /* i */
            aload 16 /* prop */
            invokevirtual org.hibernate.mapping.Property.getValue:()Lorg/hibernate/mapping/Value;
            invokeinterface org.hibernate.mapping.Value.getColumnInsertability:()[Z
            aastore
       109: .line 645
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertySelectable:[Z
            iload 7 /* i */
            aload 16 /* prop */
            invokevirtual org.hibernate.mapping.Property.isSelectable:()Z
            bastore
       110: .line 647
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyUniqueness:[Z
            iload 7 /* i */
            aload 16 /* prop */
            invokevirtual org.hibernate.mapping.Property.getValue:()Lorg/hibernate/mapping/Value;
            invokeinterface org.hibernate.mapping.Value.isAlternateUniqueKey:()Z
            bastore
       111: .line 649
            aload 16 /* prop */
            invokevirtual org.hibernate.mapping.Property.isLob:()Z
            ifeq 113
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokevirtual org.hibernate.dialect.Dialect.forceLobAsLastValue:()Z
            ifeq 113
       112: .line 650
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lobProperties:Ljava/util/List;
            iload 7 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       113: .line 653
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
        end local 24 // int k
        end local 23 // java.util.Iterator colIter
        end local 22 // java.lang.String[] formulaTemplates
        end local 21 // java.lang.String[] colWriters
        end local 20 // java.lang.String[] colReaderTemplates
        end local 19 // java.lang.String[] colAliases
        end local 18 // java.lang.String[] colNames
        end local 17 // int span
        end local 16 // org.hibernate.mapping.Property prop
       114: .line 599
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int java.util.Iterator int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int
      StackMap stack:
            aload 6 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 71
       115: .line 656
            aload 0 /* this */
            iload 15 /* foundFormula */
            putfield org.hibernate.persister.entity.AbstractEntityPersister.hasFormulaProperties:Z
       116: .line 657
            aload 0 /* this */
            aload 14 /* lazyColAliases */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.to2DStringArray:(Ljava/util/Collection;)[[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.lazyPropertyColumnAliases:[[Ljava/lang/String;
       117: .line 658
            aload 0 /* this */
            aload 11 /* lazyNames */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toStringArray:(Ljava/util/Collection;)[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.lazyPropertyNames:[Ljava/lang/String;
       118: .line 659
            aload 0 /* this */
            aload 12 /* lazyNumbers */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toIntArray:(Ljava/util/Collection;)[I
            putfield org.hibernate.persister.entity.AbstractEntityPersister.lazyPropertyNumbers:[I
       119: .line 660
            aload 0 /* this */
            aload 13 /* lazyTypes */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toTypeArray:(Ljava/util/Collection;)[Lorg/hibernate/type/Type;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.lazyPropertyTypes:[Lorg/hibernate/type/Type;
       120: .line 664
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 16 /* columns */
        start local 16 // java.util.ArrayList columns
       121: .line 665
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 17 /* columnsLazy */
        start local 17 // java.util.ArrayList columnsLazy
       122: .line 666
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 18 /* columnReaderTemplates */
        start local 18 // java.util.ArrayList columnReaderTemplates
       123: .line 667
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 19 /* aliases */
        start local 19 // java.util.ArrayList aliases
       124: .line 668
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 20 /* formulas */
        start local 20 // java.util.ArrayList formulas
       125: .line 669
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 21 /* formulaAliases */
        start local 21 // java.util.ArrayList formulaAliases
       126: .line 670
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 22 /* formulaTemplates */
        start local 22 // java.util.ArrayList formulaTemplates
       127: .line 671
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 23 /* formulasLazy */
        start local 23 // java.util.ArrayList formulasLazy
       128: .line 672
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 24 /* types */
        start local 24 // java.util.ArrayList types
       129: .line 673
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 25 /* names */
        start local 25 // java.util.ArrayList names
       130: .line 674
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 26 /* classes */
        start local 26 // java.util.ArrayList classes
       131: .line 675
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 27 /* templates */
        start local 27 // java.util.ArrayList templates
       132: .line 676
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 28 /* propColumns */
        start local 28 // java.util.ArrayList propColumns
       133: .line 677
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 29 /* propColumnReaders */
        start local 29 // java.util.ArrayList propColumnReaders
       134: .line 678
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 30 /* propColumnReaderTemplates */
        start local 30 // java.util.ArrayList propColumnReaderTemplates
       135: .line 679
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 31 /* joinedFetchesList */
        start local 31 // java.util.ArrayList joinedFetchesList
       136: .line 680
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 32 /* cascades */
        start local 32 // java.util.ArrayList cascades
       137: .line 681
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 33 /* definedBySubclass */
        start local 33 // java.util.ArrayList definedBySubclass
       138: .line 682
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 34 /* propColumnNumbers */
        start local 34 // java.util.ArrayList propColumnNumbers
       139: .line 683
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 35 /* propFormulaNumbers */
        start local 35 // java.util.ArrayList propFormulaNumbers
       140: .line 684
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 36 /* columnSelectables */
        start local 36 // java.util.ArrayList columnSelectables
       141: .line 685
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 37 /* propNullables */
        start local 37 // java.util.ArrayList propNullables
       142: .line 687
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.getSubclassPropertyClosureIterator:()Ljava/util/Iterator;
            astore 6 /* iter */
       143: .line 688
            goto 201
       144: .line 689
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int java.util.Iterator int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList
      StackMap stack:
            aload 6 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Property
            astore 38 /* prop */
        start local 38 // org.hibernate.mapping.Property prop
       145: .line 690
            aload 25 /* names */
            aload 38 /* prop */
            invokevirtual org.hibernate.mapping.Property.getName:()Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       146: .line 691
            aload 26 /* classes */
            aload 38 /* prop */
            invokevirtual org.hibernate.mapping.Property.getPersistentClass:()Lorg/hibernate/mapping/PersistentClass;
            invokevirtual org.hibernate.mapping.PersistentClass.getEntityName:()Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       147: .line 692
            aload 10 /* thisClassProperties */
            aload 38 /* prop */
            invokevirtual java.util.HashSet.contains:(Ljava/lang/Object;)Z
            ifeq 148
            iconst_0
            goto 149
      StackMap locals: org.hibernate.mapping.Property
      StackMap stack:
       148: iconst_1
      StackMap locals:
      StackMap stack: int
       149: istore 39 /* isDefinedBySubclass */
        start local 39 // boolean isDefinedBySubclass
       150: .line 693
            aload 33 /* definedBySubclass */
            iload 39 /* isDefinedBySubclass */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       151: .line 694
            aload 37 /* propNullables */
            aload 38 /* prop */
            invokevirtual org.hibernate.mapping.Property.isOptional:()Z
            ifne 152
            iload 39 /* isDefinedBySubclass */
            ifne 152
            iconst_0
            goto 153
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int java.util.Iterator int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList org.hibernate.mapping.Property int
      StackMap stack: java.util.ArrayList
       152: iconst_1
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int java.util.Iterator int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList org.hibernate.mapping.Property int
      StackMap stack: java.util.ArrayList int
       153: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       154: .line 695
            aload 24 /* types */
            aload 38 /* prop */
            invokevirtual org.hibernate.mapping.Property.getType:()Lorg/hibernate/type/Type;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       155: .line 697
            aload 38 /* prop */
            invokevirtual org.hibernate.mapping.Property.getColumnIterator:()Ljava/util/Iterator;
            astore 40 /* colIter */
        start local 40 // java.util.Iterator colIter
       156: .line 698
            aload 38 /* prop */
            invokevirtual org.hibernate.mapping.Property.getColumnSpan:()I
            anewarray java.lang.String
            astore 41 /* cols */
        start local 41 // java.lang.String[] cols
       157: .line 699
            aload 38 /* prop */
            invokevirtual org.hibernate.mapping.Property.getColumnSpan:()I
            anewarray java.lang.String
            astore 42 /* readers */
        start local 42 // java.lang.String[] readers
       158: .line 700
            aload 38 /* prop */
            invokevirtual org.hibernate.mapping.Property.getColumnSpan:()I
            anewarray java.lang.String
            astore 43 /* readerTemplates */
        start local 43 // java.lang.String[] readerTemplates
       159: .line 701
            aload 38 /* prop */
            invokevirtual org.hibernate.mapping.Property.getColumnSpan:()I
            anewarray java.lang.String
            astore 44 /* forms */
        start local 44 // java.lang.String[] forms
       160: .line 702
            aload 38 /* prop */
            invokevirtual org.hibernate.mapping.Property.getColumnSpan:()I
            newarray 10
            astore 45 /* colnos */
        start local 45 // int[] colnos
       161: .line 703
            aload 38 /* prop */
            invokevirtual org.hibernate.mapping.Property.getColumnSpan:()I
            newarray 10
            astore 46 /* formnos */
        start local 46 // int[] formnos
       162: .line 704
            iconst_0
            istore 47 /* l */
        start local 47 // int l
       163: .line 705
            aload 38 /* prop */
            invokevirtual org.hibernate.mapping.Property.isLazy:()Z
            ifeq 164
            iload 8 /* lazyAvailable */
            ifeq 164
            iconst_1
            goto 165
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int java.util.Iterator int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList org.hibernate.mapping.Property int java.util.Iterator java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[] int[] int[] int
      StackMap stack:
       164: iconst_0
      StackMap locals:
      StackMap stack: int
       165: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            astore 48 /* lazy */
        start local 48 // java.lang.Boolean lazy
       166: .line 706
            goto 192
       167: .line 707
      StackMap locals: java.lang.Boolean
      StackMap stack:
            aload 40 /* colIter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Selectable
            astore 49 /* thing */
        start local 49 // org.hibernate.mapping.Selectable thing
       168: .line 708
            aload 49 /* thing */
            invokeinterface org.hibernate.mapping.Selectable.isFormula:()Z
            ifeq 178
       169: .line 709
            aload 49 /* thing */
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSqlFunctionRegistry:()Lorg/hibernate/dialect/function/SQLFunctionRegistry;
            invokeinterface org.hibernate.mapping.Selectable.getTemplate:(Lorg/hibernate/dialect/Dialect;Lorg/hibernate/dialect/function/SQLFunctionRegistry;)Ljava/lang/String;
            astore 50 /* template */
        start local 50 // java.lang.String template
       170: .line 710
            aload 46 /* formnos */
            iload 47 /* l */
            aload 22 /* formulaTemplates */
            invokevirtual java.util.ArrayList.size:()I
            iastore
       171: .line 711
            aload 45 /* colnos */
            iload 47 /* l */
            iconst_m1
            iastore
       172: .line 712
            aload 22 /* formulaTemplates */
            aload 50 /* template */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       173: .line 713
            aload 44 /* forms */
            iload 47 /* l */
            aload 50 /* template */
            aastore
       174: .line 714
            aload 20 /* formulas */
            aload 49 /* thing */
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokeinterface org.hibernate.mapping.Selectable.getText:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       175: .line 715
            aload 21 /* formulaAliases */
            aload 49 /* thing */
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokeinterface org.hibernate.mapping.Selectable.getAlias:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       176: .line 716
            aload 23 /* formulasLazy */
            aload 48 /* lazy */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 50 // java.lang.String template
       177: .line 717
            goto 191
       178: .line 719
      StackMap locals: org.hibernate.mapping.Selectable
      StackMap stack:
            aload 49 /* thing */
            checkcast org.hibernate.mapping.Column
            astore 50 /* col */
        start local 50 // org.hibernate.mapping.Column col
       179: .line 720
            aload 50 /* col */
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokevirtual org.hibernate.mapping.Column.getQuotedName:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            astore 51 /* colName */
        start local 51 // java.lang.String colName
       180: .line 721
            aload 45 /* colnos */
            iload 47 /* l */
            aload 16 /* columns */
            invokevirtual java.util.ArrayList.size:()I
            iastore
       181: .line 722
            aload 46 /* formnos */
            iload 47 /* l */
            iconst_m1
            iastore
       182: .line 723
            aload 16 /* columns */
            aload 51 /* colName */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       183: .line 724
            aload 41 /* cols */
            iload 47 /* l */
            aload 51 /* colName */
            aastore
       184: .line 725
            aload 19 /* aliases */
            aload 49 /* thing */
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            aload 38 /* prop */
            invokevirtual org.hibernate.mapping.Property.getValue:()Lorg/hibernate/mapping/Value;
            invokeinterface org.hibernate.mapping.Value.getTable:()Lorg/hibernate/mapping/Table;
            invokeinterface org.hibernate.mapping.Selectable.getAlias:(Lorg/hibernate/dialect/Dialect;Lorg/hibernate/mapping/Table;)Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       185: .line 726
            aload 17 /* columnsLazy */
            aload 48 /* lazy */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       186: .line 727
            aload 36 /* columnSelectables */
            aload 38 /* prop */
            invokevirtual org.hibernate.mapping.Property.isSelectable:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       187: .line 729
            aload 42 /* readers */
            iload 47 /* l */
            aload 50 /* col */
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokevirtual org.hibernate.mapping.Column.getReadExpr:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            aastore
       188: .line 730
            aload 50 /* col */
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSqlFunctionRegistry:()Lorg/hibernate/dialect/function/SQLFunctionRegistry;
            invokevirtual org.hibernate.mapping.Column.getTemplate:(Lorg/hibernate/dialect/Dialect;Lorg/hibernate/dialect/function/SQLFunctionRegistry;)Ljava/lang/String;
            astore 52 /* readerTemplate */
        start local 52 // java.lang.String readerTemplate
       189: .line 731
            aload 43 /* readerTemplates */
            iload 47 /* l */
            aload 52 /* readerTemplate */
            aastore
       190: .line 732
            aload 18 /* columnReaderTemplates */
            aload 52 /* readerTemplate */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 52 // java.lang.String readerTemplate
        end local 51 // java.lang.String colName
        end local 50 // org.hibernate.mapping.Column col
       191: .line 734
      StackMap locals:
      StackMap stack:
            iinc 47 /* l */ 1
        end local 49 // org.hibernate.mapping.Selectable thing
       192: .line 706
      StackMap locals:
      StackMap stack:
            aload 40 /* colIter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 167
       193: .line 736
            aload 28 /* propColumns */
            aload 41 /* cols */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       194: .line 737
            aload 29 /* propColumnReaders */
            aload 42 /* readers */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       195: .line 738
            aload 30 /* propColumnReaderTemplates */
            aload 43 /* readerTemplates */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       196: .line 739
            aload 27 /* templates */
            aload 44 /* forms */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       197: .line 740
            aload 34 /* propColumnNumbers */
            aload 45 /* colnos */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       198: .line 741
            aload 35 /* propFormulaNumbers */
            aload 46 /* formnos */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       199: .line 743
            aload 31 /* joinedFetchesList */
            aload 38 /* prop */
            invokevirtual org.hibernate.mapping.Property.getValue:()Lorg/hibernate/mapping/Value;
            invokeinterface org.hibernate.mapping.Value.getFetchMode:()Lorg/hibernate/FetchMode;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       200: .line 744
            aload 32 /* cascades */
            aload 38 /* prop */
            invokevirtual org.hibernate.mapping.Property.getCascadeStyle:()Lorg/hibernate/engine/spi/CascadeStyle;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 48 // java.lang.Boolean lazy
        end local 47 // int l
        end local 46 // int[] formnos
        end local 45 // int[] colnos
        end local 44 // java.lang.String[] forms
        end local 43 // java.lang.String[] readerTemplates
        end local 42 // java.lang.String[] readers
        end local 41 // java.lang.String[] cols
        end local 40 // java.util.Iterator colIter
        end local 39 // boolean isDefinedBySubclass
        end local 38 // org.hibernate.mapping.Property prop
       201: .line 688
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int java.util.Iterator int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList
      StackMap stack:
            aload 6 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 144
       202: .line 746
            aload 0 /* this */
            aload 16 /* columns */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toStringArray:(Ljava/util/Collection;)[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassColumnClosure:[Ljava/lang/String;
       203: .line 747
            aload 0 /* this */
            aload 19 /* aliases */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toStringArray:(Ljava/util/Collection;)[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassColumnAliasClosure:[Ljava/lang/String;
       204: .line 748
            aload 0 /* this */
            aload 17 /* columnsLazy */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toBooleanArray:(Ljava/util/Collection;)[Z
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassColumnLazyClosure:[Z
       205: .line 749
            aload 0 /* this */
            aload 36 /* columnSelectables */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toBooleanArray:(Ljava/util/Collection;)[Z
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassColumnSelectableClosure:[Z
       206: .line 750
            aload 0 /* this */
            aload 18 /* columnReaderTemplates */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toStringArray:(Ljava/util/Collection;)[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassColumnReaderTemplateClosure:[Ljava/lang/String;
       207: .line 752
            aload 0 /* this */
            aload 20 /* formulas */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toStringArray:(Ljava/util/Collection;)[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassFormulaClosure:[Ljava/lang/String;
       208: .line 753
            aload 0 /* this */
            aload 22 /* formulaTemplates */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toStringArray:(Ljava/util/Collection;)[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassFormulaTemplateClosure:[Ljava/lang/String;
       209: .line 754
            aload 0 /* this */
            aload 21 /* formulaAliases */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toStringArray:(Ljava/util/Collection;)[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassFormulaAliasClosure:[Ljava/lang/String;
       210: .line 755
            aload 0 /* this */
            aload 23 /* formulasLazy */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toBooleanArray:(Ljava/util/Collection;)[Z
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassFormulaLazyClosure:[Z
       211: .line 757
            aload 0 /* this */
            aload 25 /* names */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toStringArray:(Ljava/util/Collection;)[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyNameClosure:[Ljava/lang/String;
       212: .line 758
            aload 0 /* this */
            aload 26 /* classes */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toStringArray:(Ljava/util/Collection;)[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertySubclassNameClosure:[Ljava/lang/String;
       213: .line 759
            aload 0 /* this */
            aload 24 /* types */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toTypeArray:(Ljava/util/Collection;)[Lorg/hibernate/type/Type;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyTypeClosure:[Lorg/hibernate/type/Type;
       214: .line 760
            aload 0 /* this */
            aload 37 /* propNullables */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toBooleanArray:(Ljava/util/Collection;)[Z
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyNullabilityClosure:[Z
       215: .line 761
            aload 0 /* this */
            aload 27 /* templates */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.to2DStringArray:(Ljava/util/Collection;)[[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyFormulaTemplateClosure:[[Ljava/lang/String;
       216: .line 762
            aload 0 /* this */
            aload 28 /* propColumns */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.to2DStringArray:(Ljava/util/Collection;)[[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNameClosure:[[Ljava/lang/String;
       217: .line 763
            aload 0 /* this */
            aload 29 /* propColumnReaders */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.to2DStringArray:(Ljava/util/Collection;)[[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnReaderClosure:[[Ljava/lang/String;
       218: .line 764
            aload 0 /* this */
            aload 30 /* propColumnReaderTemplates */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.to2DStringArray:(Ljava/util/Collection;)[[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnReaderTemplateClosure:[[Ljava/lang/String;
       219: .line 765
            aload 0 /* this */
            aload 34 /* propColumnNumbers */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.to2DIntArray:(Ljava/util/Collection;)[[I
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNumberClosure:[[I
       220: .line 766
            aload 0 /* this */
            aload 35 /* propFormulaNumbers */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.to2DIntArray:(Ljava/util/Collection;)[[I
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyFormulaNumberClosure:[[I
       221: .line 768
            aload 0 /* this */
            aload 32 /* cascades */
            invokevirtual java.util.ArrayList.size:()I
            anewarray org.hibernate.engine.spi.CascadeStyle
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyCascadeStyleClosure:[Lorg/hibernate/engine/spi/CascadeStyle;
       222: .line 769
            aload 32 /* cascades */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 6 /* iter */
       223: .line 770
            iconst_0
            istore 38 /* j */
        start local 38 // int j
       224: .line 771
            goto 226
       225: .line 772
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyCascadeStyleClosure:[Lorg/hibernate/engine/spi/CascadeStyle;
            iload 38 /* j */
            iinc 38 /* j */ 1
            aload 6 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.engine.spi.CascadeStyle
            aastore
       226: .line 771
      StackMap locals:
      StackMap stack:
            aload 6 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 225
       227: .line 774
            aload 0 /* this */
            aload 31 /* joinedFetchesList */
            invokevirtual java.util.ArrayList.size:()I
            anewarray org.hibernate.FetchMode
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyFetchModeClosure:[Lorg/hibernate/FetchMode;
       228: .line 775
            aload 31 /* joinedFetchesList */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 6 /* iter */
       229: .line 776
            iconst_0
            istore 38 /* j */
       230: .line 777
            goto 232
       231: .line 778
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyFetchModeClosure:[Lorg/hibernate/FetchMode;
            iload 38 /* j */
            iinc 38 /* j */ 1
            aload 6 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.FetchMode
            aastore
       232: .line 777
      StackMap locals:
      StackMap stack:
            aload 6 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 231
       233: .line 781
            aload 0 /* this */
            aload 33 /* definedBySubclass */
            invokevirtual java.util.ArrayList.size:()I
            newarray 4
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyDefinedOnSubclass:[Z
       234: .line 782
            aload 33 /* definedBySubclass */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 6 /* iter */
       235: .line 783
            iconst_0
            istore 38 /* j */
       236: .line 784
            goto 238
       237: .line 785
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyDefinedOnSubclass:[Z
            iload 38 /* j */
            iinc 38 /* j */ 1
            aload 6 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            bastore
       238: .line 784
      StackMap locals:
      StackMap stack:
            aload 6 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 237
       239: .line 789
            aload 0 /* this */
            new org.hibernate.internal.FilterHelper
            dup
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.getFilters:()Ljava/util/List;
            aload 4 /* factory */
            invokespecial org.hibernate.internal.FilterHelper.<init>:(Ljava/util/List;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
            putfield org.hibernate.persister.entity.AbstractEntityPersister.filterHelper:Lorg/hibernate/internal/FilterHelper;
       240: .line 791
            aload 0 /* this */
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.getTemporaryIdTableName:()Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.temporaryIdTableName:Ljava/lang/String;
       241: .line 792
            aload 0 /* this */
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.getTemporaryIdTableDDL:()Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.temporaryIdTableDDL:Ljava/lang/String;
       242: .line 794
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.buildCacheEntryHelper:()Lorg/hibernate/persister/entity/AbstractEntityPersister$CacheEntryHelper;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.cacheEntryHelper:Lorg/hibernate/persister/entity/AbstractEntityPersister$CacheEntryHelper;
       243: .line 795
            return
        end local 38 // int j
        end local 37 // java.util.ArrayList propNullables
        end local 36 // java.util.ArrayList columnSelectables
        end local 35 // java.util.ArrayList propFormulaNumbers
        end local 34 // java.util.ArrayList propColumnNumbers
        end local 33 // java.util.ArrayList definedBySubclass
        end local 32 // java.util.ArrayList cascades
        end local 31 // java.util.ArrayList joinedFetchesList
        end local 30 // java.util.ArrayList propColumnReaderTemplates
        end local 29 // java.util.ArrayList propColumnReaders
        end local 28 // java.util.ArrayList propColumns
        end local 27 // java.util.ArrayList templates
        end local 26 // java.util.ArrayList classes
        end local 25 // java.util.ArrayList names
        end local 24 // java.util.ArrayList types
        end local 23 // java.util.ArrayList formulasLazy
        end local 22 // java.util.ArrayList formulaTemplates
        end local 21 // java.util.ArrayList formulaAliases
        end local 20 // java.util.ArrayList formulas
        end local 19 // java.util.ArrayList aliases
        end local 18 // java.util.ArrayList columnReaderTemplates
        end local 17 // java.util.ArrayList columnsLazy
        end local 16 // java.util.ArrayList columns
        end local 15 // boolean foundFormula
        end local 14 // java.util.ArrayList lazyColAliases
        end local 13 // java.util.ArrayList lazyTypes
        end local 12 // java.util.ArrayList lazyNumbers
        end local 11 // java.util.ArrayList lazyNames
        end local 10 // java.util.HashSet thisClassProperties
        end local 9 // int hydrateSpan
        end local 8 // boolean lazyAvailable
        end local 7 // int i
        end local 6 // java.util.Iterator iter
        end local 5 // int batch
        end local 4 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 3 // org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy naturalIdRegionAccessStrategy
        end local 2 // org.hibernate.cache.spi.access.EntityRegionAccessStrategy cacheAccessStrategy
        end local 1 // org.hibernate.mapping.PersistentClass persistentClass
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0  244     0                           this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0  244     1                persistentClass  Lorg/hibernate/mapping/PersistentClass;
            0  244     2            cacheAccessStrategy  Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;
            0  244     3  naturalIdRegionAccessStrategy  Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;
            0  244     4                        factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
           15  244     5                          batch  I
           28  244     6                           iter  Ljava/util/Iterator;
           29  244     7                              i  I
           31   36     8                            col  Lorg/hibernate/mapping/Column;
           49  244     8                  lazyAvailable  Z
           50  244     9                    hydrateSpan  I
           62  244    10            thisClassProperties  Ljava/util/HashSet;
           64  244    11                      lazyNames  Ljava/util/ArrayList;
           65  244    12                    lazyNumbers  Ljava/util/ArrayList;
           66  244    13                      lazyTypes  Ljava/util/ArrayList;
           67  244    14                 lazyColAliases  Ljava/util/ArrayList;
           70  244    15                   foundFormula  Z
           72  114    16                           prop  Lorg/hibernate/mapping/Property;
           74  114    17                           span  I
           77  114    18                       colNames  [Ljava/lang/String;
           78  114    19                     colAliases  [Ljava/lang/String;
           79  114    20             colReaderTemplates  [Ljava/lang/String;
           80  114    21                     colWriters  [Ljava/lang/String;
           81  114    22               formulaTemplates  [Ljava/lang/String;
           82  114    23                        colIter  Ljava/util/Iterator;
           83  114    24                              k  I
           85   95    25                          thing  Lorg/hibernate/mapping/Selectable;
           91   94    26                            col  Lorg/hibernate/mapping/Column;
          121  244    16                        columns  Ljava/util/ArrayList;
          122  244    17                    columnsLazy  Ljava/util/ArrayList;
          123  244    18          columnReaderTemplates  Ljava/util/ArrayList;
          124  244    19                        aliases  Ljava/util/ArrayList;
          125  244    20                       formulas  Ljava/util/ArrayList;
          126  244    21                 formulaAliases  Ljava/util/ArrayList;
          127  244    22               formulaTemplates  Ljava/util/ArrayList;
          128  244    23                   formulasLazy  Ljava/util/ArrayList;
          129  244    24                          types  Ljava/util/ArrayList;
          130  244    25                          names  Ljava/util/ArrayList;
          131  244    26                        classes  Ljava/util/ArrayList;
          132  244    27                      templates  Ljava/util/ArrayList;
          133  244    28                    propColumns  Ljava/util/ArrayList;
          134  244    29              propColumnReaders  Ljava/util/ArrayList;
          135  244    30      propColumnReaderTemplates  Ljava/util/ArrayList;
          136  244    31              joinedFetchesList  Ljava/util/ArrayList;
          137  244    32                       cascades  Ljava/util/ArrayList;
          138  244    33              definedBySubclass  Ljava/util/ArrayList;
          139  244    34              propColumnNumbers  Ljava/util/ArrayList;
          140  244    35             propFormulaNumbers  Ljava/util/ArrayList;
          141  244    36              columnSelectables  Ljava/util/ArrayList;
          142  244    37                  propNullables  Ljava/util/ArrayList;
          145  201    38                           prop  Lorg/hibernate/mapping/Property;
          150  201    39            isDefinedBySubclass  Z
          156  201    40                        colIter  Ljava/util/Iterator;
          157  201    41                           cols  [Ljava/lang/String;
          158  201    42                        readers  [Ljava/lang/String;
          159  201    43                readerTemplates  [Ljava/lang/String;
          160  201    44                          forms  [Ljava/lang/String;
          161  201    45                         colnos  [I
          162  201    46                        formnos  [I
          163  201    47                              l  I
          166  201    48                           lazy  Ljava/lang/Boolean;
          168  192    49                          thing  Lorg/hibernate/mapping/Selectable;
          170  177    50                       template  Ljava/lang/String;
          179  191    50                            col  Lorg/hibernate/mapping/Column;
          180  191    51                        colName  Ljava/lang/String;
          189  191    52                 readerTemplate  Ljava/lang/String;
          224  244    38                              j  I
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                               Name  Flags
      persistentClass                final
      cacheAccessStrategy            final
      naturalIdRegionAccessStrategy  final
      factory                        final

  protected org.hibernate.persister.entity.AbstractEntityPersister$CacheEntryHelper buildCacheEntryHelper();
    descriptor: ()Lorg/hibernate/persister/entity/AbstractEntityPersister$CacheEntryHelper;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 798
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.cacheAccessStrategy:Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;
            ifnonnull 2
         1: .line 800
            getstatic org.hibernate.persister.entity.AbstractEntityPersister$NoopCacheEntryHelper.INSTANCE:Lorg/hibernate/persister/entity/AbstractEntityPersister$NoopCacheEntryHelper;
            areturn
         2: .line 803
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.canUseReferenceCacheEntries:()Z
            ifeq 5
         3: .line 804
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            iconst_0
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.setLazy:(Z)V
         4: .line 806
            new org.hibernate.persister.entity.AbstractEntityPersister$ReferenceCacheEntryHelper
            dup
            aload 0 /* this */
            invokespecial org.hibernate.persister.entity.AbstractEntityPersister$ReferenceCacheEntryHelper.<init>:(Lorg/hibernate/persister/entity/EntityPersister;)V
            areturn
         5: .line 809
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.isStructuredCacheEntriesEnabled:()Z
            ifeq 7
         6: .line 810
            new org.hibernate.persister.entity.AbstractEntityPersister$StructuredCacheEntryHelper
            dup
            aload 0 /* this */
            invokespecial org.hibernate.persister.entity.AbstractEntityPersister$StructuredCacheEntryHelper.<init>:(Lorg/hibernate/persister/entity/EntityPersister;)V
            goto 8
         7: .line 811
      StackMap locals:
      StackMap stack:
            new org.hibernate.persister.entity.AbstractEntityPersister$StandardCacheEntryHelper
            dup
            aload 0 /* this */
            invokespecial org.hibernate.persister.entity.AbstractEntityPersister$StandardCacheEntryHelper.<init>:(Lorg/hibernate/persister/entity/EntityPersister;)V
         8: .line 809
      StackMap locals:
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister$CacheEntryHelper
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean canUseReferenceCacheEntries();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 817
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.isDirectReferenceCacheEntriesEnabled:()Z
            ifne 2
         1: .line 818
            iconst_0
            ireturn
         2: .line 823
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.isMutable:()Z
            ifeq 4
         3: .line 824
            iconst_0
            ireturn
         4: .line 828
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyTypeClosure:()[Lorg/hibernate/type/Type;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 9
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister top int int org.hibernate.type.Type[]
      StackMap stack:
         5: aload 4
            iload 2
            aaload
            astore 1 /* type */
        start local 1 // org.hibernate.type.Type type
         6: .line 829
            aload 1 /* type */
            invokeinterface org.hibernate.type.Type.isAssociationType:()Z
            ifeq 8
         7: .line 830
            iconst_0
            ireturn
        end local 1 // org.hibernate.type.Type type
         8: .line 828
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
         9: iload 2
            iload 3
            if_icmplt 5
        10: .line 834
            iconst_1
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            6    8     1  type  Lorg/hibernate/type/Type;

  public void <init>(org.hibernate.metamodel.binding.EntityBinding, org.hibernate.cache.spi.access.EntityRegionAccessStrategy, org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy, org.hibernate.engine.spi.SessionFactoryImplementor);
    descriptor: (Lorg/hibernate/metamodel/binding/EntityBinding;Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=55, args_size=5
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.metamodel.binding.EntityBinding entityBinding
        start local 2 // org.hibernate.cache.spi.access.EntityRegionAccessStrategy cacheAccessStrategy
        start local 3 // org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy naturalIdRegionAccessStrategy
        start local 4 // org.hibernate.engine.spi.SessionFactoryImplementor factory
         0: .line 838
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 202
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.hibernate.persister.entity.AbstractEntityPersister.lobProperties:Ljava/util/List;
         2: .line 239
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.hibernate.persister.entity.AbstractEntityPersister.affectingFetchProfileNames:Ljava/util/Set;
         3: .line 241
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.hibernate.persister.entity.AbstractEntityPersister.uniqueKeyLoaders:Ljava/util/Map;
         4: .line 242
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.hibernate.persister.entity.AbstractEntityPersister.lockers:Ljava/util/Map;
         5: .line 243
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.hibernate.persister.entity.AbstractEntityPersister.loaders:Ljava/util/Map;
         6: .line 284
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyAliases:Ljava/util/Map;
         7: .line 285
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNames:Ljava/util/Map;
         8: .line 843
            aload 0 /* this */
            aload 4 /* factory */
            putfield org.hibernate.persister.entity.AbstractEntityPersister.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
         9: .line 844
            aload 0 /* this */
            aload 2 /* cacheAccessStrategy */
            putfield org.hibernate.persister.entity.AbstractEntityPersister.cacheAccessStrategy:Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;
        10: .line 845
            aload 0 /* this */
            aload 3 /* naturalIdRegionAccessStrategy */
            putfield org.hibernate.persister.entity.AbstractEntityPersister.naturalIdRegionAccessStrategy:Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;
        11: .line 846
            aload 0 /* this */
        12: .line 847
            aload 1 /* entityBinding */
            invokevirtual org.hibernate.metamodel.binding.EntityBinding.getHierarchyDetails:()Lorg/hibernate/metamodel/binding/HierarchyDetails;
            invokevirtual org.hibernate.metamodel.binding.HierarchyDetails.getCaching:()Lorg/hibernate/metamodel/binding/Caching;
            ifnonnull 14
        13: .line 848
            iconst_0
            goto 15
        14: .line 849
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister
            aload 1 /* entityBinding */
            invokevirtual org.hibernate.metamodel.binding.EntityBinding.getHierarchyDetails:()Lorg/hibernate/metamodel/binding/HierarchyDetails;
            invokevirtual org.hibernate.metamodel.binding.HierarchyDetails.getCaching:()Lorg/hibernate/metamodel/binding/Caching;
            invokevirtual org.hibernate.metamodel.binding.Caching.isCacheLazyProperties:()Z
        15: .line 846
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister int
            putfield org.hibernate.persister.entity.AbstractEntityPersister.isLazyPropertiesCacheable:Z
        16: .line 850
            aload 0 /* this */
            new org.hibernate.tuple.entity.EntityMetamodel
            dup
            aload 1 /* entityBinding */
            aload 0 /* this */
            aload 4 /* factory */
            invokespecial org.hibernate.tuple.entity.EntityMetamodel.<init>:(Lorg/hibernate/metamodel/binding/EntityBinding;Lorg/hibernate/persister/entity/AbstractEntityPersister;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
            putfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
        17: .line 851
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getTuplizer:()Lorg/hibernate/tuple/entity/EntityTuplizer;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.entityTuplizer:Lorg/hibernate/tuple/entity/EntityTuplizer;
        18: .line 852
            aload 1 /* entityBinding */
            invokevirtual org.hibernate.metamodel.binding.EntityBinding.getBatchSize:()I
            istore 5 /* batch */
        start local 5 // int batch
        19: .line 853
            iload 5 /* batch */
            iconst_m1
            if_icmpne 21
        20: .line 854
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.getDefaultBatchFetchSize:()I
            istore 5 /* batch */
        21: .line 856
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 5 /* batch */
            putfield org.hibernate.persister.entity.AbstractEntityPersister.batchSize:I
        22: .line 857
            aload 0 /* this */
            aload 1 /* entityBinding */
            invokevirtual org.hibernate.metamodel.binding.EntityBinding.hasSubselectLoadableCollections:()Z
            putfield org.hibernate.persister.entity.AbstractEntityPersister.hasSubselectLoadableCollections:Z
        23: .line 859
            aload 0 /* this */
            new org.hibernate.persister.entity.BasicEntityPropertyMapping
            dup
            aload 0 /* this */
            invokespecial org.hibernate.persister.entity.BasicEntityPropertyMapping.<init>:(Lorg/hibernate/persister/entity/AbstractEntityPersister;)V
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyMapping:Lorg/hibernate/persister/entity/BasicEntityPropertyMapping;
        24: .line 863
            aload 0 /* this */
            aload 1 /* entityBinding */
            invokevirtual org.hibernate.metamodel.binding.EntityBinding.getHierarchyDetails:()Lorg/hibernate/metamodel/binding/HierarchyDetails;
            invokevirtual org.hibernate.metamodel.binding.HierarchyDetails.getEntityIdentifier:()Lorg/hibernate/metamodel/binding/EntityIdentifier;
            invokevirtual org.hibernate.metamodel.binding.EntityIdentifier.getValueBinding:()Lorg/hibernate/metamodel/binding/BasicAttributeBinding;
            invokevirtual org.hibernate.metamodel.binding.BasicAttributeBinding.getSimpleValueSpan:()I
            putfield org.hibernate.persister.entity.AbstractEntityPersister.identifierColumnSpan:I
        25: .line 864
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.identifierColumnSpan:I
            anewarray java.lang.String
            putfield org.hibernate.persister.entity.AbstractEntityPersister.rootTableKeyColumnNames:[Ljava/lang/String;
        26: .line 865
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.identifierColumnSpan:I
            anewarray java.lang.String
            putfield org.hibernate.persister.entity.AbstractEntityPersister.rootTableKeyColumnReaders:[Ljava/lang/String;
        27: .line 866
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.identifierColumnSpan:I
            anewarray java.lang.String
            putfield org.hibernate.persister.entity.AbstractEntityPersister.rootTableKeyColumnReaderTemplates:[Ljava/lang/String;
        28: .line 867
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.identifierColumnSpan:I
            anewarray java.lang.String
            putfield org.hibernate.persister.entity.AbstractEntityPersister.identifierAliases:[Ljava/lang/String;
        29: .line 869
            aload 0 /* this */
            aload 1 /* entityBinding */
            invokevirtual org.hibernate.metamodel.binding.EntityBinding.getRowId:()Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.rowIdName:Ljava/lang/String;
        30: .line 871
            aload 0 /* this */
            aload 1 /* entityBinding */
            invokevirtual org.hibernate.metamodel.binding.EntityBinding.getCustomLoaderName:()Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.loaderName:Ljava/lang/String;
        31: .line 873
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        32: .line 874
            aload 1 /* entityBinding */
            invokevirtual org.hibernate.metamodel.binding.EntityBinding.getPrimaryTable:()Lorg/hibernate/metamodel/relational/TableSpecification;
            invokeinterface org.hibernate.metamodel.relational.TableSpecification.getPrimaryKey:()Lorg/hibernate/metamodel/relational/PrimaryKey;
            invokevirtual org.hibernate.metamodel.relational.PrimaryKey.getColumns:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 8
            goto 43
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int top java.util.Iterator
      StackMap stack:
        33: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.metamodel.relational.Column
            astore 7 /* col */
        start local 7 // org.hibernate.metamodel.relational.Column col
        34: .line 875
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.rootTableKeyColumnNames:[Ljava/lang/String;
            iload 6 /* i */
            aload 7 /* col */
            invokevirtual org.hibernate.metamodel.relational.Column.getColumnName:()Lorg/hibernate/metamodel/relational/Identifier;
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokevirtual org.hibernate.metamodel.relational.Identifier.encloseInQuotesIfQuoted:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            aastore
        35: .line 876
            aload 7 /* col */
            invokevirtual org.hibernate.metamodel.relational.Column.getReadFragment:()Ljava/lang/String;
            ifnonnull 39
        36: .line 877
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.rootTableKeyColumnReaders:[Ljava/lang/String;
            iload 6 /* i */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.rootTableKeyColumnNames:[Ljava/lang/String;
            iload 6 /* i */
            aaload
            aastore
        37: .line 878
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.rootTableKeyColumnReaderTemplates:[Ljava/lang/String;
            iload 6 /* i */
            aload 0 /* this */
            aload 7 /* col */
            aload 4 /* factory */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTemplateFromColumn:(Lorg/hibernate/metamodel/relational/Column;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            aastore
        38: .line 879
            goto 41
        39: .line 881
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int org.hibernate.metamodel.relational.Column java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.rootTableKeyColumnReaders:[Ljava/lang/String;
            iload 6 /* i */
            aload 7 /* col */
            invokevirtual org.hibernate.metamodel.relational.Column.getReadFragment:()Ljava/lang/String;
            aastore
        40: .line 882
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.rootTableKeyColumnReaderTemplates:[Ljava/lang/String;
            iload 6 /* i */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.rootTableKeyColumnReaders:[Ljava/lang/String;
            iload 6 /* i */
            aaload
            aload 4 /* factory */
            invokestatic org.hibernate.persister.entity.AbstractEntityPersister.getTemplateFromString:(Ljava/lang/String;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            aastore
        41: .line 884
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.identifierAliases:[Ljava/lang/String;
            iload 6 /* i */
            aload 7 /* col */
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokevirtual org.hibernate.metamodel.relational.Column.getAlias:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            aastore
        42: .line 885
            iinc 6 /* i */ 1
        end local 7 // org.hibernate.metamodel.relational.Column col
        43: .line 874
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 33
        44: .line 890
            aload 1 /* entityBinding */
            invokevirtual org.hibernate.metamodel.binding.EntityBinding.isVersioned:()Z
            ifeq 51
        45: .line 891
            aload 1 /* entityBinding */
            invokevirtual org.hibernate.metamodel.binding.EntityBinding.getHierarchyDetails:()Lorg/hibernate/metamodel/binding/HierarchyDetails;
            invokevirtual org.hibernate.metamodel.binding.HierarchyDetails.getVersioningAttributeBinding:()Lorg/hibernate/metamodel/binding/BasicAttributeBinding;
            invokevirtual org.hibernate.metamodel.binding.BasicAttributeBinding.getValue:()Lorg/hibernate/metamodel/relational/Value;
            astore 7 /* versioningValue */
        start local 7 // org.hibernate.metamodel.relational.Value versioningValue
        46: .line 892
            ldc Lorg/hibernate/metamodel/relational/Column;
            aload 7 /* versioningValue */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifne 48
        47: .line 893
            new org.hibernate.AssertionFailure
            dup
            new java.lang.StringBuilder
            dup
            ldc "Bad versioning attribute binding : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* versioningValue */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.hibernate.AssertionFailure.<init>:(Ljava/lang/String;)V
            athrow
        48: .line 895
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int org.hibernate.metamodel.relational.Value
      StackMap stack:
            ldc Lorg/hibernate/metamodel/relational/Column;
            aload 7 /* versioningValue */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.metamodel.relational.Column
            astore 8 /* versionColumn */
        start local 8 // org.hibernate.metamodel.relational.Column versionColumn
        49: .line 896
            aload 0 /* this */
            aload 8 /* versionColumn */
            invokevirtual org.hibernate.metamodel.relational.Column.getColumnName:()Lorg/hibernate/metamodel/relational/Identifier;
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokevirtual org.hibernate.metamodel.relational.Identifier.encloseInQuotesIfQuoted:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.versionColumnName:Ljava/lang/String;
        end local 8 // org.hibernate.metamodel.relational.Column versionColumn
        end local 7 // org.hibernate.metamodel.relational.Value versioningValue
        50: .line 897
            goto 52
        51: .line 899
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.hibernate.persister.entity.AbstractEntityPersister.versionColumnName:Ljava/lang/String;
        52: .line 904
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* entityBinding */
            invokevirtual org.hibernate.metamodel.binding.EntityBinding.getWhereFilter:()Ljava/lang/String;
            invokestatic org.hibernate.internal.util.StringHelper.isNotEmpty:(Ljava/lang/String;)Z
            ifeq 53
            new java.lang.StringBuilder
            dup
            ldc "( "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* entityBinding */
            invokevirtual org.hibernate.metamodel.binding.EntityBinding.getWhereFilter:()Ljava/lang/String;
            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;
            goto 54
      StackMap locals:
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister
        53: aconst_null
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String
        54: putfield org.hibernate.persister.entity.AbstractEntityPersister.sqlWhereString:Ljava/lang/String;
        55: .line 905
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlWhereString:Ljava/lang/String;
            aload 4 /* factory */
            invokestatic org.hibernate.persister.entity.AbstractEntityPersister.getTemplateFromString:(Ljava/lang/String;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.sqlWhereStringTemplate:Ljava/lang/String;
        56: .line 909
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isInstrumented:()Z
            istore 7 /* lazyAvailable */
        start local 7 // boolean lazyAvailable
        57: .line 911
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertySpan:()I
            istore 8 /* hydrateSpan */
        start local 8 // int hydrateSpan
        58: .line 912
            aload 0 /* this */
            iload 8 /* hydrateSpan */
            newarray 10
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnSpans:[I
        59: .line 913
            aload 0 /* this */
            iload 8 /* hydrateSpan */
            anewarray java.lang.String
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertySubclassNames:[Ljava/lang/String;
        60: .line 914
            aload 0 /* this */
            iload 8 /* hydrateSpan */
            anewarray java.lang.String[]
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnAliases:[[Ljava/lang/String;
        61: .line 915
            aload 0 /* this */
            iload 8 /* hydrateSpan */
            anewarray java.lang.String[]
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnNames:[[Ljava/lang/String;
        62: .line 916
            aload 0 /* this */
            iload 8 /* hydrateSpan */
            anewarray java.lang.String[]
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnFormulaTemplates:[[Ljava/lang/String;
        63: .line 917
            aload 0 /* this */
            iload 8 /* hydrateSpan */
            anewarray java.lang.String[]
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnReaderTemplates:[[Ljava/lang/String;
        64: .line 918
            aload 0 /* this */
            iload 8 /* hydrateSpan */
            anewarray java.lang.String[]
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnWriters:[[Ljava/lang/String;
        65: .line 919
            aload 0 /* this */
            iload 8 /* hydrateSpan */
            newarray 4
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyUniqueness:[Z
        66: .line 920
            aload 0 /* this */
            iload 8 /* hydrateSpan */
            newarray 4
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertySelectable:[Z
        67: .line 921
            aload 0 /* this */
            iload 8 /* hydrateSpan */
            anewarray boolean[]
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnUpdateable:[[Z
        68: .line 922
            aload 0 /* this */
            iload 8 /* hydrateSpan */
            anewarray boolean[]
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnInsertable:[[Z
        69: .line 923
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 9 /* thisClassProperties */
        start local 9 // java.util.HashSet thisClassProperties
        70: .line 925
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.hibernate.persister.entity.AbstractEntityPersister.lazyProperties:Ljava/util/Set;
        71: .line 926
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 10 /* lazyNames */
        start local 10 // java.util.ArrayList lazyNames
        72: .line 927
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 11 /* lazyNumbers */
        start local 11 // java.util.ArrayList lazyNumbers
        73: .line 928
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 12 /* lazyTypes */
        start local 12 // java.util.ArrayList lazyTypes
        74: .line 929
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 13 /* lazyColAliases */
        start local 13 // java.util.ArrayList lazyColAliases
        75: .line 931
            iconst_0
            istore 6 /* i */
        76: .line 932
            iconst_0
            istore 14 /* foundFormula */
        start local 14 // boolean foundFormula
        77: .line 933
            aload 1 /* entityBinding */
            invokevirtual org.hibernate.metamodel.binding.EntityBinding.getAttributeBindingClosure:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 16
            goto 129
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int top java.util.Iterator
      StackMap stack:
        78: aload 16
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.metamodel.binding.AttributeBinding
            astore 15 /* attributeBinding */
        start local 15 // org.hibernate.metamodel.binding.AttributeBinding attributeBinding
        79: .line 934
            aload 15 /* attributeBinding */
            aload 1 /* entityBinding */
            invokevirtual org.hibernate.metamodel.binding.EntityBinding.getHierarchyDetails:()Lorg/hibernate/metamodel/binding/HierarchyDetails;
            invokevirtual org.hibernate.metamodel.binding.HierarchyDetails.getEntityIdentifier:()Lorg/hibernate/metamodel/binding/EntityIdentifier;
            invokevirtual org.hibernate.metamodel.binding.EntityIdentifier.getValueBinding:()Lorg/hibernate/metamodel/binding/BasicAttributeBinding;
            if_acmpne 81
        80: .line 936
            goto 129
        81: .line 939
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int org.hibernate.metamodel.binding.AttributeBinding java.util.Iterator
      StackMap stack:
            aload 15 /* attributeBinding */
            invokeinterface org.hibernate.metamodel.binding.AttributeBinding.getAttribute:()Lorg/hibernate/metamodel/domain/Attribute;
            invokeinterface org.hibernate.metamodel.domain.Attribute.isSingular:()Z
            ifne 83
        82: .line 941
            goto 129
        83: .line 944
      StackMap locals:
      StackMap stack:
            aload 15 /* attributeBinding */
            checkcast org.hibernate.metamodel.binding.SingularAttributeBinding
            astore 17 /* singularAttributeBinding */
        start local 17 // org.hibernate.metamodel.binding.SingularAttributeBinding singularAttributeBinding
        84: .line 946
            aload 9 /* thisClassProperties */
            aload 17 /* singularAttributeBinding */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        85: .line 948
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertySubclassNames:[Ljava/lang/String;
            iload 6 /* i */
            aload 17 /* singularAttributeBinding */
            invokeinterface org.hibernate.metamodel.binding.SingularAttributeBinding.getContainer:()Lorg/hibernate/metamodel/binding/AttributeBindingContainer;
            checkcast org.hibernate.metamodel.binding.EntityBinding
            invokevirtual org.hibernate.metamodel.binding.EntityBinding.getEntity:()Lorg/hibernate/metamodel/domain/Entity;
            invokevirtual org.hibernate.metamodel.domain.Entity.getName:()Ljava/lang/String;
            aastore
        86: .line 950
            aload 17 /* singularAttributeBinding */
            invokeinterface org.hibernate.metamodel.binding.SingularAttributeBinding.getSimpleValueSpan:()I
            istore 18 /* span */
        start local 18 // int span
        87: .line 951
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnSpans:[I
            iload 6 /* i */
            iload 18 /* span */
            iastore
        88: .line 953
            iload 18 /* span */
            anewarray java.lang.String
            astore 19 /* colNames */
        start local 19 // java.lang.String[] colNames
        89: .line 954
            iload 18 /* span */
            anewarray java.lang.String
            astore 20 /* colAliases */
        start local 20 // java.lang.String[] colAliases
        90: .line 955
            iload 18 /* span */
            anewarray java.lang.String
            astore 21 /* colReaderTemplates */
        start local 21 // java.lang.String[] colReaderTemplates
        91: .line 956
            iload 18 /* span */
            anewarray java.lang.String
            astore 22 /* colWriters */
        start local 22 // java.lang.String[] colWriters
        92: .line 957
            iload 18 /* span */
            anewarray java.lang.String
            astore 23 /* formulaTemplates */
        start local 23 // java.lang.String[] formulaTemplates
        93: .line 958
            iload 18 /* span */
            newarray 4
            astore 24 /* propertyColumnInsertability */
        start local 24 // boolean[] propertyColumnInsertability
        94: .line 959
            iload 18 /* span */
            newarray 4
            astore 25 /* propertyColumnUpdatability */
        start local 25 // boolean[] propertyColumnUpdatability
        95: .line 961
            iconst_0
            istore 26 /* k */
        start local 26 // int k
        96: .line 963
            aload 17 /* singularAttributeBinding */
            invokeinterface org.hibernate.metamodel.binding.SingularAttributeBinding.getSimpleValueBindings:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 28
            goto 112
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int org.hibernate.metamodel.binding.AttributeBinding java.util.Iterator org.hibernate.metamodel.binding.SingularAttributeBinding int java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[] boolean[] boolean[] int top java.util.Iterator
      StackMap stack:
        97: aload 28
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.metamodel.binding.SimpleValueBinding
            astore 27 /* valueBinding */
        start local 27 // org.hibernate.metamodel.binding.SimpleValueBinding valueBinding
        98: .line 964
            aload 20 /* colAliases */
            iload 26 /* k */
            aload 27 /* valueBinding */
            invokevirtual org.hibernate.metamodel.binding.SimpleValueBinding.getSimpleValue:()Lorg/hibernate/metamodel/relational/SimpleValue;
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokeinterface org.hibernate.metamodel.relational.SimpleValue.getAlias:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            aastore
        99: .line 965
            aload 27 /* valueBinding */
            invokevirtual org.hibernate.metamodel.binding.SimpleValueBinding.isDerived:()Z
            ifeq 103
       100: .line 966
            iconst_1
            istore 14 /* foundFormula */
       101: .line 967
            aload 23 /* formulaTemplates */
            iload 26 /* k */
            aload 27 /* valueBinding */
            invokevirtual org.hibernate.metamodel.binding.SimpleValueBinding.getSimpleValue:()Lorg/hibernate/metamodel/relational/SimpleValue;
            checkcast org.hibernate.metamodel.relational.DerivedValue
            invokevirtual org.hibernate.metamodel.relational.DerivedValue.getExpression:()Ljava/lang/String;
            aload 4 /* factory */
            invokestatic org.hibernate.persister.entity.AbstractEntityPersister.getTemplateFromString:(Ljava/lang/String;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            aastore
       102: .line 968
            goto 109
       103: .line 970
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int org.hibernate.metamodel.binding.AttributeBinding java.util.Iterator org.hibernate.metamodel.binding.SingularAttributeBinding int java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[] boolean[] boolean[] int org.hibernate.metamodel.binding.SimpleValueBinding java.util.Iterator
      StackMap stack:
            aload 27 /* valueBinding */
            invokevirtual org.hibernate.metamodel.binding.SimpleValueBinding.getSimpleValue:()Lorg/hibernate/metamodel/relational/SimpleValue;
            checkcast org.hibernate.metamodel.relational.Column
            astore 29 /* col */
        start local 29 // org.hibernate.metamodel.relational.Column col
       104: .line 971
            aload 19 /* colNames */
            iload 26 /* k */
            aload 29 /* col */
            invokevirtual org.hibernate.metamodel.relational.Column.getColumnName:()Lorg/hibernate/metamodel/relational/Identifier;
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokevirtual org.hibernate.metamodel.relational.Identifier.encloseInQuotesIfQuoted:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            aastore
       105: .line 972
            aload 21 /* colReaderTemplates */
            iload 26 /* k */
            aload 0 /* this */
            aload 29 /* col */
            aload 4 /* factory */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTemplateFromColumn:(Lorg/hibernate/metamodel/relational/Column;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            aastore
       106: .line 973
            aload 22 /* colWriters */
            iload 26 /* k */
            aload 29 /* col */
            invokevirtual org.hibernate.metamodel.relational.Column.getWriteFragment:()Ljava/lang/String;
            ifnonnull 107
            ldc "?"
            goto 108
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int org.hibernate.metamodel.binding.AttributeBinding java.util.Iterator org.hibernate.metamodel.binding.SingularAttributeBinding int java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[] boolean[] boolean[] int org.hibernate.metamodel.binding.SimpleValueBinding java.util.Iterator org.hibernate.metamodel.relational.Column
      StackMap stack: java.lang.String[] int
       107: aload 29 /* col */
            invokevirtual org.hibernate.metamodel.relational.Column.getWriteFragment:()Ljava/lang/String;
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int org.hibernate.metamodel.binding.AttributeBinding java.util.Iterator org.hibernate.metamodel.binding.SingularAttributeBinding int java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[] boolean[] boolean[] int org.hibernate.metamodel.binding.SimpleValueBinding java.util.Iterator org.hibernate.metamodel.relational.Column
      StackMap stack: java.lang.String[] int java.lang.String
       108: aastore
        end local 29 // org.hibernate.metamodel.relational.Column col
       109: .line 975
      StackMap locals:
      StackMap stack:
            aload 24 /* propertyColumnInsertability */
            iload 26 /* k */
            aload 27 /* valueBinding */
            invokevirtual org.hibernate.metamodel.binding.SimpleValueBinding.isIncludeInInsert:()Z
            bastore
       110: .line 976
            aload 25 /* propertyColumnUpdatability */
            iload 26 /* k */
            aload 27 /* valueBinding */
            invokevirtual org.hibernate.metamodel.binding.SimpleValueBinding.isIncludeInUpdate:()Z
            bastore
       111: .line 977
            iinc 26 /* k */ 1
        end local 27 // org.hibernate.metamodel.binding.SimpleValueBinding valueBinding
       112: .line 963
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int org.hibernate.metamodel.binding.AttributeBinding java.util.Iterator org.hibernate.metamodel.binding.SingularAttributeBinding int java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[] boolean[] boolean[] int top java.util.Iterator
      StackMap stack:
            aload 28
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 97
       113: .line 979
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnNames:[[Ljava/lang/String;
            iload 6 /* i */
            aload 19 /* colNames */
            aastore
       114: .line 980
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnFormulaTemplates:[[Ljava/lang/String;
            iload 6 /* i */
            aload 23 /* formulaTemplates */
            aastore
       115: .line 981
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnReaderTemplates:[[Ljava/lang/String;
            iload 6 /* i */
            aload 21 /* colReaderTemplates */
            aastore
       116: .line 982
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnWriters:[[Ljava/lang/String;
            iload 6 /* i */
            aload 22 /* colWriters */
            aastore
       117: .line 983
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnAliases:[[Ljava/lang/String;
            iload 6 /* i */
            aload 20 /* colAliases */
            aastore
       118: .line 985
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnUpdateable:[[Z
            iload 6 /* i */
            aload 25 /* propertyColumnUpdatability */
            aastore
       119: .line 986
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnInsertable:[[Z
            iload 6 /* i */
            aload 24 /* propertyColumnInsertability */
            aastore
       120: .line 988
            iload 7 /* lazyAvailable */
            ifeq 126
            aload 17 /* singularAttributeBinding */
            invokeinterface org.hibernate.metamodel.binding.SingularAttributeBinding.isLazy:()Z
            ifeq 126
       121: .line 989
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lazyProperties:Ljava/util/Set;
            aload 17 /* singularAttributeBinding */
            invokeinterface org.hibernate.metamodel.binding.SingularAttributeBinding.getAttribute:()Lorg/hibernate/metamodel/domain/Attribute;
            invokeinterface org.hibernate.metamodel.domain.Attribute.getName:()Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
       122: .line 990
            aload 10 /* lazyNames */
            aload 17 /* singularAttributeBinding */
            invokeinterface org.hibernate.metamodel.binding.SingularAttributeBinding.getAttribute:()Lorg/hibernate/metamodel/domain/Attribute;
            invokeinterface org.hibernate.metamodel.domain.Attribute.getName:()Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       123: .line 991
            aload 11 /* lazyNumbers */
            iload 6 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       124: .line 992
            aload 12 /* lazyTypes */
            aload 17 /* singularAttributeBinding */
            invokeinterface org.hibernate.metamodel.binding.SingularAttributeBinding.getHibernateTypeDescriptor:()Lorg/hibernate/metamodel/binding/HibernateTypeDescriptor;
            invokevirtual org.hibernate.metamodel.binding.HibernateTypeDescriptor.getResolvedTypeMapping:()Lorg/hibernate/type/Type;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       125: .line 993
            aload 13 /* lazyColAliases */
            aload 20 /* colAliases */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       126: .line 999
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int org.hibernate.metamodel.binding.AttributeBinding java.util.Iterator org.hibernate.metamodel.binding.SingularAttributeBinding int java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[] boolean[] boolean[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertySelectable:[Z
            iload 6 /* i */
            iconst_1
            bastore
       127: .line 1001
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyUniqueness:[Z
            iload 6 /* i */
            aload 17 /* singularAttributeBinding */
            invokeinterface org.hibernate.metamodel.binding.SingularAttributeBinding.isAlternateUniqueKey:()Z
            bastore
       128: .line 1005
            iinc 6 /* i */ 1
        end local 26 // int k
        end local 25 // boolean[] propertyColumnUpdatability
        end local 24 // boolean[] propertyColumnInsertability
        end local 23 // java.lang.String[] formulaTemplates
        end local 22 // java.lang.String[] colWriters
        end local 21 // java.lang.String[] colReaderTemplates
        end local 20 // java.lang.String[] colAliases
        end local 19 // java.lang.String[] colNames
        end local 18 // int span
        end local 17 // org.hibernate.metamodel.binding.SingularAttributeBinding singularAttributeBinding
        end local 15 // org.hibernate.metamodel.binding.AttributeBinding attributeBinding
       129: .line 933
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int top java.util.Iterator
      StackMap stack:
            aload 16
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 78
       130: .line 1008
            aload 0 /* this */
            iload 14 /* foundFormula */
            putfield org.hibernate.persister.entity.AbstractEntityPersister.hasFormulaProperties:Z
       131: .line 1009
            aload 0 /* this */
            aload 13 /* lazyColAliases */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.to2DStringArray:(Ljava/util/Collection;)[[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.lazyPropertyColumnAliases:[[Ljava/lang/String;
       132: .line 1010
            aload 0 /* this */
            aload 10 /* lazyNames */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toStringArray:(Ljava/util/Collection;)[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.lazyPropertyNames:[Ljava/lang/String;
       133: .line 1011
            aload 0 /* this */
            aload 11 /* lazyNumbers */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toIntArray:(Ljava/util/Collection;)[I
            putfield org.hibernate.persister.entity.AbstractEntityPersister.lazyPropertyNumbers:[I
       134: .line 1012
            aload 0 /* this */
            aload 12 /* lazyTypes */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toTypeArray:(Ljava/util/Collection;)[Lorg/hibernate/type/Type;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.lazyPropertyTypes:[Lorg/hibernate/type/Type;
       135: .line 1016
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 15 /* columns */
        start local 15 // java.util.List columns
       136: .line 1017
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 16 /* columnsLazy */
        start local 16 // java.util.List columnsLazy
       137: .line 1018
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 17 /* columnReaderTemplates */
        start local 17 // java.util.List columnReaderTemplates
       138: .line 1019
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 18 /* aliases */
        start local 18 // java.util.List aliases
       139: .line 1020
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 19 /* formulas */
        start local 19 // java.util.List formulas
       140: .line 1021
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 20 /* formulaAliases */
        start local 20 // java.util.List formulaAliases
       141: .line 1022
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 21 /* formulaTemplates */
        start local 21 // java.util.List formulaTemplates
       142: .line 1023
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 22 /* formulasLazy */
        start local 22 // java.util.List formulasLazy
       143: .line 1024
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 23 /* types */
        start local 23 // java.util.List types
       144: .line 1025
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 24 /* names */
        start local 24 // java.util.List names
       145: .line 1026
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 25 /* classes */
        start local 25 // java.util.List classes
       146: .line 1027
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 26 /* templates */
        start local 26 // java.util.List templates
       147: .line 1028
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 27 /* propColumns */
        start local 27 // java.util.List propColumns
       148: .line 1029
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 28 /* propColumnReaders */
        start local 28 // java.util.List propColumnReaders
       149: .line 1030
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 29 /* propColumnReaderTemplates */
        start local 29 // java.util.List propColumnReaderTemplates
       150: .line 1031
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 30 /* joinedFetchesList */
        start local 30 // java.util.List joinedFetchesList
       151: .line 1032
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 31 /* cascades */
        start local 31 // java.util.List cascades
       152: .line 1033
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 32 /* definedBySubclass */
        start local 32 // java.util.List definedBySubclass
       153: .line 1034
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 33 /* propColumnNumbers */
        start local 33 // java.util.List propColumnNumbers
       154: .line 1035
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 34 /* propFormulaNumbers */
        start local 34 // java.util.List propFormulaNumbers
       155: .line 1036
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 35 /* columnSelectables */
        start local 35 // java.util.List columnSelectables
       156: .line 1037
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 36 /* propNullables */
        start local 36 // java.util.List propNullables
       157: .line 1039
            aload 1 /* entityBinding */
            invokevirtual org.hibernate.metamodel.binding.EntityBinding.getSubEntityAttributeBindingClosure:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 38
            goto 231
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List top java.util.Iterator
      StackMap stack:
       158: aload 38
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.metamodel.binding.AttributeBinding
            astore 37 /* attributeBinding */
        start local 37 // org.hibernate.metamodel.binding.AttributeBinding attributeBinding
       159: .line 1040
            aload 37 /* attributeBinding */
            aload 1 /* entityBinding */
            invokevirtual org.hibernate.metamodel.binding.EntityBinding.getHierarchyDetails:()Lorg/hibernate/metamodel/binding/HierarchyDetails;
            invokevirtual org.hibernate.metamodel.binding.HierarchyDetails.getEntityIdentifier:()Lorg/hibernate/metamodel/binding/EntityIdentifier;
            invokevirtual org.hibernate.metamodel.binding.EntityIdentifier.getValueBinding:()Lorg/hibernate/metamodel/binding/BasicAttributeBinding;
            if_acmpne 161
       160: .line 1042
            goto 231
       161: .line 1045
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List org.hibernate.metamodel.binding.AttributeBinding java.util.Iterator
      StackMap stack:
            aload 37 /* attributeBinding */
            invokeinterface org.hibernate.metamodel.binding.AttributeBinding.getAttribute:()Lorg/hibernate/metamodel/domain/Attribute;
            invokeinterface org.hibernate.metamodel.domain.Attribute.isSingular:()Z
            ifne 163
       162: .line 1047
            goto 231
       163: .line 1050
      StackMap locals:
      StackMap stack:
            aload 37 /* attributeBinding */
            checkcast org.hibernate.metamodel.binding.SingularAttributeBinding
            astore 39 /* singularAttributeBinding */
        start local 39 // org.hibernate.metamodel.binding.SingularAttributeBinding singularAttributeBinding
       164: .line 1052
            aload 24 /* names */
            aload 39 /* singularAttributeBinding */
            invokeinterface org.hibernate.metamodel.binding.SingularAttributeBinding.getAttribute:()Lorg/hibernate/metamodel/domain/Attribute;
            invokeinterface org.hibernate.metamodel.domain.Attribute.getName:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       165: .line 1053
            aload 25 /* classes */
            aload 39 /* singularAttributeBinding */
            invokeinterface org.hibernate.metamodel.binding.SingularAttributeBinding.getContainer:()Lorg/hibernate/metamodel/binding/AttributeBindingContainer;
            checkcast org.hibernate.metamodel.binding.EntityBinding
            invokevirtual org.hibernate.metamodel.binding.EntityBinding.getEntity:()Lorg/hibernate/metamodel/domain/Entity;
            invokevirtual org.hibernate.metamodel.domain.Entity.getName:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       166: .line 1054
            aload 9 /* thisClassProperties */
            aload 39 /* singularAttributeBinding */
            invokevirtual java.util.HashSet.contains:(Ljava/lang/Object;)Z
            ifeq 167
            iconst_0
            goto 168
      StackMap locals: org.hibernate.metamodel.binding.SingularAttributeBinding
      StackMap stack:
       167: iconst_1
      StackMap locals:
      StackMap stack: int
       168: istore 40 /* isDefinedBySubclass */
        start local 40 // boolean isDefinedBySubclass
       169: .line 1055
            aload 32 /* definedBySubclass */
            iload 40 /* isDefinedBySubclass */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       170: .line 1056
            aload 36 /* propNullables */
            aload 39 /* singularAttributeBinding */
            invokeinterface org.hibernate.metamodel.binding.SingularAttributeBinding.isNullable:()Z
            ifne 171
            iload 40 /* isDefinedBySubclass */
            ifne 171
            iconst_0
            goto 172
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List org.hibernate.metamodel.binding.AttributeBinding java.util.Iterator org.hibernate.metamodel.binding.SingularAttributeBinding int
      StackMap stack: java.util.List
       171: iconst_1
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List org.hibernate.metamodel.binding.AttributeBinding java.util.Iterator org.hibernate.metamodel.binding.SingularAttributeBinding int
      StackMap stack: java.util.List int
       172: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       173: .line 1057
            aload 23 /* types */
            aload 39 /* singularAttributeBinding */
            invokeinterface org.hibernate.metamodel.binding.SingularAttributeBinding.getHibernateTypeDescriptor:()Lorg/hibernate/metamodel/binding/HibernateTypeDescriptor;
            invokevirtual org.hibernate.metamodel.binding.HibernateTypeDescriptor.getResolvedTypeMapping:()Lorg/hibernate/type/Type;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       174: .line 1059
            aload 39 /* singularAttributeBinding */
            invokeinterface org.hibernate.metamodel.binding.SingularAttributeBinding.getSimpleValueSpan:()I
            istore 41 /* span */
        start local 41 // int span
       175: .line 1060
            iload 41 /* span */
            anewarray java.lang.String
            astore 42 /* cols */
        start local 42 // java.lang.String[] cols
       176: .line 1061
            iload 41 /* span */
            anewarray java.lang.String
            astore 43 /* readers */
        start local 43 // java.lang.String[] readers
       177: .line 1062
            iload 41 /* span */
            anewarray java.lang.String
            astore 44 /* readerTemplates */
        start local 44 // java.lang.String[] readerTemplates
       178: .line 1063
            iload 41 /* span */
            anewarray java.lang.String
            astore 45 /* forms */
        start local 45 // java.lang.String[] forms
       179: .line 1064
            iload 41 /* span */
            newarray 10
            astore 46 /* colnos */
        start local 46 // int[] colnos
       180: .line 1065
            iload 41 /* span */
            newarray 10
            astore 47 /* formnos */
        start local 47 // int[] formnos
       181: .line 1066
            iconst_0
            istore 48 /* l */
        start local 48 // int l
       182: .line 1067
            aload 39 /* singularAttributeBinding */
            invokeinterface org.hibernate.metamodel.binding.SingularAttributeBinding.isLazy:()Z
            ifeq 183
            iload 7 /* lazyAvailable */
            ifeq 183
            iconst_1
            goto 184
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List org.hibernate.metamodel.binding.AttributeBinding java.util.Iterator org.hibernate.metamodel.binding.SingularAttributeBinding int int java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[] int[] int[] int
      StackMap stack:
       183: iconst_0
      StackMap locals:
      StackMap stack: int
       184: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            astore 49 /* lazy */
        start local 49 // java.lang.Boolean lazy
       185: .line 1068
            aload 39 /* singularAttributeBinding */
            invokeinterface org.hibernate.metamodel.binding.SingularAttributeBinding.getSimpleValueBindings:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 51
            goto 216
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List org.hibernate.metamodel.binding.AttributeBinding java.util.Iterator org.hibernate.metamodel.binding.SingularAttributeBinding int int java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[] int[] int[] int java.lang.Boolean top java.util.Iterator
      StackMap stack:
       186: aload 51
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.metamodel.binding.SimpleValueBinding
            astore 50 /* valueBinding */
        start local 50 // org.hibernate.metamodel.binding.SimpleValueBinding valueBinding
       187: .line 1069
            aload 50 /* valueBinding */
            invokevirtual org.hibernate.metamodel.binding.SimpleValueBinding.isDerived:()Z
            ifeq 198
       188: .line 1070
            ldc Lorg/hibernate/metamodel/relational/DerivedValue;
            aload 50 /* valueBinding */
            invokevirtual org.hibernate.metamodel.binding.SimpleValueBinding.getSimpleValue:()Lorg/hibernate/metamodel/relational/SimpleValue;
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.metamodel.relational.DerivedValue
            astore 52 /* derivedValue */
        start local 52 // org.hibernate.metamodel.relational.DerivedValue derivedValue
       189: .line 1071
            aload 52 /* derivedValue */
            invokevirtual org.hibernate.metamodel.relational.DerivedValue.getExpression:()Ljava/lang/String;
            aload 4 /* factory */
            invokestatic org.hibernate.persister.entity.AbstractEntityPersister.getTemplateFromString:(Ljava/lang/String;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            astore 53 /* template */
        start local 53 // java.lang.String template
       190: .line 1072
            aload 47 /* formnos */
            iload 48 /* l */
            aload 21 /* formulaTemplates */
            invokeinterface java.util.List.size:()I
            iastore
       191: .line 1073
            aload 46 /* colnos */
            iload 48 /* l */
            iconst_m1
            iastore
       192: .line 1074
            aload 21 /* formulaTemplates */
            aload 53 /* template */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       193: .line 1075
            aload 45 /* forms */
            iload 48 /* l */
            aload 53 /* template */
            aastore
       194: .line 1076
            aload 19 /* formulas */
            aload 52 /* derivedValue */
            invokevirtual org.hibernate.metamodel.relational.DerivedValue.getExpression:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       195: .line 1077
            aload 20 /* formulaAliases */
            aload 52 /* derivedValue */
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokevirtual org.hibernate.metamodel.relational.DerivedValue.getAlias:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       196: .line 1078
            aload 22 /* formulasLazy */
            aload 49 /* lazy */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 53 // java.lang.String template
        end local 52 // org.hibernate.metamodel.relational.DerivedValue derivedValue
       197: .line 1079
            goto 215
       198: .line 1081
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List org.hibernate.metamodel.binding.AttributeBinding java.util.Iterator org.hibernate.metamodel.binding.SingularAttributeBinding int int java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[] int[] int[] int java.lang.Boolean org.hibernate.metamodel.binding.SimpleValueBinding java.util.Iterator
      StackMap stack:
            ldc Lorg/hibernate/metamodel/relational/Column;
            aload 50 /* valueBinding */
            invokevirtual org.hibernate.metamodel.binding.SimpleValueBinding.getSimpleValue:()Lorg/hibernate/metamodel/relational/SimpleValue;
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.metamodel.relational.Column
            astore 52 /* col */
        start local 52 // org.hibernate.metamodel.relational.Column col
       199: .line 1082
            aload 52 /* col */
            invokevirtual org.hibernate.metamodel.relational.Column.getColumnName:()Lorg/hibernate/metamodel/relational/Identifier;
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokevirtual org.hibernate.metamodel.relational.Identifier.encloseInQuotesIfQuoted:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            astore 53 /* colName */
        start local 53 // java.lang.String colName
       200: .line 1083
            aload 46 /* colnos */
            iload 48 /* l */
            aload 15 /* columns */
            invokeinterface java.util.List.size:()I
            iastore
       201: .line 1084
            aload 47 /* formnos */
            iload 48 /* l */
            iconst_m1
            iastore
       202: .line 1085
            aload 15 /* columns */
            aload 53 /* colName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       203: .line 1086
            aload 42 /* cols */
            iload 48 /* l */
            aload 53 /* colName */
            aastore
       204: .line 1087
            aload 18 /* aliases */
            aload 52 /* col */
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokevirtual org.hibernate.metamodel.relational.Column.getAlias:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       205: .line 1088
            aload 16 /* columnsLazy */
            aload 49 /* lazy */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       206: .line 1090
            aload 35 /* columnSelectables */
            aload 39 /* singularAttributeBinding */
            invokeinterface org.hibernate.metamodel.binding.SingularAttributeBinding.getAttribute:()Lorg/hibernate/metamodel/domain/Attribute;
            invokeinterface org.hibernate.metamodel.domain.Attribute.isSingular:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       207: .line 1092
            aload 43 /* readers */
            iload 48 /* l */
       208: .line 1093
            aload 52 /* col */
            invokevirtual org.hibernate.metamodel.relational.Column.getReadFragment:()Ljava/lang/String;
            ifnonnull 210
       209: .line 1094
            aload 52 /* col */
            invokevirtual org.hibernate.metamodel.relational.Column.getColumnName:()Lorg/hibernate/metamodel/relational/Identifier;
            aload 4 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokevirtual org.hibernate.metamodel.relational.Identifier.encloseInQuotesIfQuoted:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            goto 211
       210: .line 1095
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List org.hibernate.metamodel.binding.AttributeBinding java.util.Iterator org.hibernate.metamodel.binding.SingularAttributeBinding int int java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[] int[] int[] int java.lang.Boolean org.hibernate.metamodel.binding.SimpleValueBinding java.util.Iterator org.hibernate.metamodel.relational.Column java.lang.String
      StackMap stack: java.lang.String[] int
            aload 52 /* col */
            invokevirtual org.hibernate.metamodel.relational.Column.getReadFragment:()Ljava/lang/String;
       211: .line 1092
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List org.hibernate.metamodel.binding.AttributeBinding java.util.Iterator org.hibernate.metamodel.binding.SingularAttributeBinding int int java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[] int[] int[] int java.lang.Boolean org.hibernate.metamodel.binding.SimpleValueBinding java.util.Iterator org.hibernate.metamodel.relational.Column java.lang.String
      StackMap stack: java.lang.String[] int java.lang.String
            aastore
       212: .line 1096
            aload 0 /* this */
            aload 52 /* col */
            aload 4 /* factory */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTemplateFromColumn:(Lorg/hibernate/metamodel/relational/Column;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            astore 54 /* readerTemplate */
        start local 54 // java.lang.String readerTemplate
       213: .line 1097
            aload 44 /* readerTemplates */
            iload 48 /* l */
            aload 54 /* readerTemplate */
            aastore
       214: .line 1098
            aload 17 /* columnReaderTemplates */
            aload 54 /* readerTemplate */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 54 // java.lang.String readerTemplate
        end local 53 // java.lang.String colName
        end local 52 // org.hibernate.metamodel.relational.Column col
       215: .line 1100
      StackMap locals:
      StackMap stack:
            iinc 48 /* l */ 1
        end local 50 // org.hibernate.metamodel.binding.SimpleValueBinding valueBinding
       216: .line 1068
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List org.hibernate.metamodel.binding.AttributeBinding java.util.Iterator org.hibernate.metamodel.binding.SingularAttributeBinding int int java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[] int[] int[] int java.lang.Boolean top java.util.Iterator
      StackMap stack:
            aload 51
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 186
       217: .line 1102
            aload 27 /* propColumns */
            aload 42 /* cols */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       218: .line 1103
            aload 28 /* propColumnReaders */
            aload 43 /* readers */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       219: .line 1104
            aload 29 /* propColumnReaderTemplates */
            aload 44 /* readerTemplates */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       220: .line 1105
            aload 26 /* templates */
            aload 45 /* forms */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       221: .line 1106
            aload 33 /* propColumnNumbers */
            aload 46 /* colnos */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       222: .line 1107
            aload 34 /* propFormulaNumbers */
            aload 47 /* formnos */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       223: .line 1109
            aload 39 /* singularAttributeBinding */
            invokeinterface org.hibernate.metamodel.binding.SingularAttributeBinding.isAssociation:()Z
            ifeq 229
       224: .line 1111
            aload 39 /* singularAttributeBinding */
            checkcast org.hibernate.metamodel.binding.AssociationAttributeBinding
       225: .line 1110
            astore 50 /* associationAttributeBinding */
        start local 50 // org.hibernate.metamodel.binding.AssociationAttributeBinding associationAttributeBinding
       226: .line 1112
            aload 31 /* cascades */
            aload 50 /* associationAttributeBinding */
            invokeinterface org.hibernate.metamodel.binding.AssociationAttributeBinding.getCascadeStyle:()Lorg/hibernate/engine/spi/CascadeStyle;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       227: .line 1113
            aload 30 /* joinedFetchesList */
            aload 50 /* associationAttributeBinding */
            invokeinterface org.hibernate.metamodel.binding.AssociationAttributeBinding.getFetchMode:()Lorg/hibernate/FetchMode;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 50 // org.hibernate.metamodel.binding.AssociationAttributeBinding associationAttributeBinding
       228: .line 1114
            goto 231
       229: .line 1116
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List org.hibernate.metamodel.binding.AttributeBinding java.util.Iterator org.hibernate.metamodel.binding.SingularAttributeBinding int int java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[] int[] int[] int java.lang.Boolean
      StackMap stack:
            aload 31 /* cascades */
            getstatic org.hibernate.engine.spi.CascadeStyles.NONE:Lorg/hibernate/engine/spi/CascadeStyle;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       230: .line 1117
            aload 30 /* joinedFetchesList */
            getstatic org.hibernate.FetchMode.SELECT:Lorg/hibernate/FetchMode;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 49 // java.lang.Boolean lazy
        end local 48 // int l
        end local 47 // int[] formnos
        end local 46 // int[] colnos
        end local 45 // java.lang.String[] forms
        end local 44 // java.lang.String[] readerTemplates
        end local 43 // java.lang.String[] readers
        end local 42 // java.lang.String[] cols
        end local 41 // int span
        end local 40 // boolean isDefinedBySubclass
        end local 39 // org.hibernate.metamodel.binding.SingularAttributeBinding singularAttributeBinding
        end local 37 // org.hibernate.metamodel.binding.AttributeBinding attributeBinding
       231: .line 1039
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List top java.util.Iterator
      StackMap stack:
            aload 38
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 158
       232: .line 1121
            aload 0 /* this */
            aload 15 /* columns */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toStringArray:(Ljava/util/Collection;)[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassColumnClosure:[Ljava/lang/String;
       233: .line 1122
            aload 0 /* this */
            aload 18 /* aliases */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toStringArray:(Ljava/util/Collection;)[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassColumnAliasClosure:[Ljava/lang/String;
       234: .line 1123
            aload 0 /* this */
            aload 16 /* columnsLazy */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toBooleanArray:(Ljava/util/Collection;)[Z
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassColumnLazyClosure:[Z
       235: .line 1124
            aload 0 /* this */
            aload 35 /* columnSelectables */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toBooleanArray:(Ljava/util/Collection;)[Z
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassColumnSelectableClosure:[Z
       236: .line 1125
            aload 0 /* this */
            aload 17 /* columnReaderTemplates */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toStringArray:(Ljava/util/Collection;)[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassColumnReaderTemplateClosure:[Ljava/lang/String;
       237: .line 1127
            aload 0 /* this */
            aload 19 /* formulas */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toStringArray:(Ljava/util/Collection;)[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassFormulaClosure:[Ljava/lang/String;
       238: .line 1128
            aload 0 /* this */
            aload 21 /* formulaTemplates */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toStringArray:(Ljava/util/Collection;)[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassFormulaTemplateClosure:[Ljava/lang/String;
       239: .line 1129
            aload 0 /* this */
            aload 20 /* formulaAliases */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toStringArray:(Ljava/util/Collection;)[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassFormulaAliasClosure:[Ljava/lang/String;
       240: .line 1130
            aload 0 /* this */
            aload 22 /* formulasLazy */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toBooleanArray:(Ljava/util/Collection;)[Z
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassFormulaLazyClosure:[Z
       241: .line 1132
            aload 0 /* this */
            aload 24 /* names */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toStringArray:(Ljava/util/Collection;)[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyNameClosure:[Ljava/lang/String;
       242: .line 1133
            aload 0 /* this */
            aload 25 /* classes */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toStringArray:(Ljava/util/Collection;)[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertySubclassNameClosure:[Ljava/lang/String;
       243: .line 1134
            aload 0 /* this */
            aload 23 /* types */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toTypeArray:(Ljava/util/Collection;)[Lorg/hibernate/type/Type;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyTypeClosure:[Lorg/hibernate/type/Type;
       244: .line 1135
            aload 0 /* this */
            aload 36 /* propNullables */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toBooleanArray:(Ljava/util/Collection;)[Z
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyNullabilityClosure:[Z
       245: .line 1136
            aload 0 /* this */
            aload 26 /* templates */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.to2DStringArray:(Ljava/util/Collection;)[[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyFormulaTemplateClosure:[[Ljava/lang/String;
       246: .line 1137
            aload 0 /* this */
            aload 27 /* propColumns */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.to2DStringArray:(Ljava/util/Collection;)[[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNameClosure:[[Ljava/lang/String;
       247: .line 1138
            aload 0 /* this */
            aload 28 /* propColumnReaders */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.to2DStringArray:(Ljava/util/Collection;)[[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnReaderClosure:[[Ljava/lang/String;
       248: .line 1139
            aload 0 /* this */
            aload 29 /* propColumnReaderTemplates */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.to2DStringArray:(Ljava/util/Collection;)[[Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnReaderTemplateClosure:[[Ljava/lang/String;
       249: .line 1140
            aload 0 /* this */
            aload 33 /* propColumnNumbers */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.to2DIntArray:(Ljava/util/Collection;)[[I
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNumberClosure:[[I
       250: .line 1141
            aload 0 /* this */
            aload 34 /* propFormulaNumbers */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.to2DIntArray:(Ljava/util/Collection;)[[I
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyFormulaNumberClosure:[[I
       251: .line 1143
            aload 0 /* this */
            aload 31 /* cascades */
            aload 31 /* cascades */
            invokeinterface java.util.List.size:()I
            anewarray org.hibernate.engine.spi.CascadeStyle
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.hibernate.engine.spi.CascadeStyle[]
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyCascadeStyleClosure:[Lorg/hibernate/engine/spi/CascadeStyle;
       252: .line 1144
            aload 0 /* this */
            aload 30 /* joinedFetchesList */
            aload 30 /* joinedFetchesList */
            invokeinterface java.util.List.size:()I
            anewarray org.hibernate.FetchMode
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.hibernate.FetchMode[]
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyFetchModeClosure:[Lorg/hibernate/FetchMode;
       253: .line 1146
            aload 0 /* this */
            aload 32 /* definedBySubclass */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toBooleanArray:(Ljava/util/Collection;)[Z
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyDefinedOnSubclass:[Z
       254: .line 1148
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 37 /* filterDefaultConditions */
        start local 37 // java.util.List filterDefaultConditions
       255: .line 1149
            aload 1 /* entityBinding */
            invokevirtual org.hibernate.metamodel.binding.EntityBinding.getFilterDefinitions:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 39
            goto 260
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor int int int int java.util.HashSet java.util.ArrayList java.util.ArrayList java.util.ArrayList java.util.ArrayList int java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List java.util.List top java.util.Iterator
      StackMap stack:
       256: aload 39
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.engine.spi.FilterDefinition
            astore 38 /* filterDefinition */
        start local 38 // org.hibernate.engine.spi.FilterDefinition filterDefinition
       257: .line 1150
            aload 37 /* filterDefaultConditions */
            new org.hibernate.internal.FilterConfiguration
            dup
            aload 38 /* filterDefinition */
            invokevirtual org.hibernate.engine.spi.FilterDefinition.getFilterName:()Ljava/lang/String;
       258: .line 1151
            aload 38 /* filterDefinition */
            invokevirtual org.hibernate.engine.spi.FilterDefinition.getDefaultFilterCondition:()Ljava/lang/String;
            iconst_1
            aconst_null
            aconst_null
            aconst_null
            invokespecial org.hibernate.internal.FilterConfiguration.<init>:(Ljava/lang/String;Ljava/lang/String;ZLjava/util/Map;Ljava/util/Map;Lorg/hibernate/mapping/PersistentClass;)V
       259: .line 1150
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 38 // org.hibernate.engine.spi.FilterDefinition filterDefinition
       260: .line 1149
      StackMap locals:
      StackMap stack:
            aload 39
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 256
       261: .line 1153
            aload 0 /* this */
            new org.hibernate.internal.FilterHelper
            dup
            aload 37 /* filterDefaultConditions */
            aload 4 /* factory */
            invokespecial org.hibernate.internal.FilterHelper.<init>:(Ljava/util/List;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
            putfield org.hibernate.persister.entity.AbstractEntityPersister.filterHelper:Lorg/hibernate/internal/FilterHelper;
       262: .line 1155
            aload 0 /* this */
            aconst_null
            putfield org.hibernate.persister.entity.AbstractEntityPersister.temporaryIdTableName:Ljava/lang/String;
       263: .line 1156
            aload 0 /* this */
            aconst_null
            putfield org.hibernate.persister.entity.AbstractEntityPersister.temporaryIdTableDDL:Ljava/lang/String;
       264: .line 1158
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.buildCacheEntryHelper:()Lorg/hibernate/persister/entity/AbstractEntityPersister$CacheEntryHelper;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.cacheEntryHelper:Lorg/hibernate/persister/entity/AbstractEntityPersister$CacheEntryHelper;
       265: .line 1159
            return
        end local 37 // java.util.List filterDefaultConditions
        end local 36 // java.util.List propNullables
        end local 35 // java.util.List columnSelectables
        end local 34 // java.util.List propFormulaNumbers
        end local 33 // java.util.List propColumnNumbers
        end local 32 // java.util.List definedBySubclass
        end local 31 // java.util.List cascades
        end local 30 // java.util.List joinedFetchesList
        end local 29 // java.util.List propColumnReaderTemplates
        end local 28 // java.util.List propColumnReaders
        end local 27 // java.util.List propColumns
        end local 26 // java.util.List templates
        end local 25 // java.util.List classes
        end local 24 // java.util.List names
        end local 23 // java.util.List types
        end local 22 // java.util.List formulasLazy
        end local 21 // java.util.List formulaTemplates
        end local 20 // java.util.List formulaAliases
        end local 19 // java.util.List formulas
        end local 18 // java.util.List aliases
        end local 17 // java.util.List columnReaderTemplates
        end local 16 // java.util.List columnsLazy
        end local 15 // java.util.List columns
        end local 14 // boolean foundFormula
        end local 13 // java.util.ArrayList lazyColAliases
        end local 12 // java.util.ArrayList lazyTypes
        end local 11 // java.util.ArrayList lazyNumbers
        end local 10 // java.util.ArrayList lazyNames
        end local 9 // java.util.HashSet thisClassProperties
        end local 8 // int hydrateSpan
        end local 7 // boolean lazyAvailable
        end local 6 // int i
        end local 5 // int batch
        end local 4 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 3 // org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy naturalIdRegionAccessStrategy
        end local 2 // org.hibernate.cache.spi.access.EntityRegionAccessStrategy cacheAccessStrategy
        end local 1 // org.hibernate.metamodel.binding.EntityBinding entityBinding
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0  266     0                           this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0  266     1                  entityBinding  Lorg/hibernate/metamodel/binding/EntityBinding;
            0  266     2            cacheAccessStrategy  Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;
            0  266     3  naturalIdRegionAccessStrategy  Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;
            0  266     4                        factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
           19  266     5                          batch  I
           32  266     6                              i  I
           34   43     7                            col  Lorg/hibernate/metamodel/relational/Column;
           46   50     7                versioningValue  Lorg/hibernate/metamodel/relational/Value;
           49   50     8                  versionColumn  Lorg/hibernate/metamodel/relational/Column;
           57  266     7                  lazyAvailable  Z
           58  266     8                    hydrateSpan  I
           70  266     9            thisClassProperties  Ljava/util/HashSet;
           72  266    10                      lazyNames  Ljava/util/ArrayList;
           73  266    11                    lazyNumbers  Ljava/util/ArrayList;
           74  266    12                      lazyTypes  Ljava/util/ArrayList;
           75  266    13                 lazyColAliases  Ljava/util/ArrayList;
           77  266    14                   foundFormula  Z
           79  129    15               attributeBinding  Lorg/hibernate/metamodel/binding/AttributeBinding;
           84  129    17       singularAttributeBinding  Lorg/hibernate/metamodel/binding/SingularAttributeBinding;
           87  129    18                           span  I
           89  129    19                       colNames  [Ljava/lang/String;
           90  129    20                     colAliases  [Ljava/lang/String;
           91  129    21             colReaderTemplates  [Ljava/lang/String;
           92  129    22                     colWriters  [Ljava/lang/String;
           93  129    23               formulaTemplates  [Ljava/lang/String;
           94  129    24    propertyColumnInsertability  [Z
           95  129    25     propertyColumnUpdatability  [Z
           96  129    26                              k  I
           98  112    27                   valueBinding  Lorg/hibernate/metamodel/binding/SimpleValueBinding;
          104  109    29                            col  Lorg/hibernate/metamodel/relational/Column;
          136  266    15                        columns  Ljava/util/List<Ljava/lang/String;>;
          137  266    16                    columnsLazy  Ljava/util/List<Ljava/lang/Boolean;>;
          138  266    17          columnReaderTemplates  Ljava/util/List<Ljava/lang/String;>;
          139  266    18                        aliases  Ljava/util/List<Ljava/lang/String;>;
          140  266    19                       formulas  Ljava/util/List<Ljava/lang/String;>;
          141  266    20                 formulaAliases  Ljava/util/List<Ljava/lang/String;>;
          142  266    21               formulaTemplates  Ljava/util/List<Ljava/lang/String;>;
          143  266    22                   formulasLazy  Ljava/util/List<Ljava/lang/Boolean;>;
          144  266    23                          types  Ljava/util/List<Lorg/hibernate/type/Type;>;
          145  266    24                          names  Ljava/util/List<Ljava/lang/String;>;
          146  266    25                        classes  Ljava/util/List<Ljava/lang/String;>;
          147  266    26                      templates  Ljava/util/List<[Ljava/lang/String;>;
          148  266    27                    propColumns  Ljava/util/List<[Ljava/lang/String;>;
          149  266    28              propColumnReaders  Ljava/util/List<[Ljava/lang/String;>;
          150  266    29      propColumnReaderTemplates  Ljava/util/List<[Ljava/lang/String;>;
          151  266    30              joinedFetchesList  Ljava/util/List<Lorg/hibernate/FetchMode;>;
          152  266    31                       cascades  Ljava/util/List<Lorg/hibernate/engine/spi/CascadeStyle;>;
          153  266    32              definedBySubclass  Ljava/util/List<Ljava/lang/Boolean;>;
          154  266    33              propColumnNumbers  Ljava/util/List<[I>;
          155  266    34             propFormulaNumbers  Ljava/util/List<[I>;
          156  266    35              columnSelectables  Ljava/util/List<Ljava/lang/Boolean;>;
          157  266    36                  propNullables  Ljava/util/List<Ljava/lang/Boolean;>;
          159  231    37               attributeBinding  Lorg/hibernate/metamodel/binding/AttributeBinding;
          164  231    39       singularAttributeBinding  Lorg/hibernate/metamodel/binding/SingularAttributeBinding;
          169  231    40            isDefinedBySubclass  Z
          175  231    41                           span  I
          176  231    42                           cols  [Ljava/lang/String;
          177  231    43                        readers  [Ljava/lang/String;
          178  231    44                readerTemplates  [Ljava/lang/String;
          179  231    45                          forms  [Ljava/lang/String;
          180  231    46                         colnos  [I
          181  231    47                        formnos  [I
          182  231    48                              l  I
          185  231    49                           lazy  Ljava/lang/Boolean;
          187  216    50                   valueBinding  Lorg/hibernate/metamodel/binding/SimpleValueBinding;
          189  197    52                   derivedValue  Lorg/hibernate/metamodel/relational/DerivedValue;
          190  197    53                       template  Ljava/lang/String;
          199  215    52                            col  Lorg/hibernate/metamodel/relational/Column;
          200  215    53                        colName  Ljava/lang/String;
          213  215    54                 readerTemplate  Ljava/lang/String;
          226  228    50    associationAttributeBinding  Lorg/hibernate/metamodel/binding/AssociationAttributeBinding;
          255  266    37        filterDefaultConditions  Ljava/util/List<Lorg/hibernate/internal/FilterConfiguration;>;
          257  260    38               filterDefinition  Lorg/hibernate/engine/spi/FilterDefinition;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                               Name  Flags
      entityBinding                  final
      cacheAccessStrategy            final
      naturalIdRegionAccessStrategy  final
      factory                        final

  protected static java.lang.String getTemplateFromString(java.lang.String, org.hibernate.engine.spi.SessionFactoryImplementor);
    descriptor: (Ljava/lang/String;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String string
        start local 1 // org.hibernate.engine.spi.SessionFactoryImplementor factory
         0: .line 1162
            aload 0 /* string */
            ifnonnull 2
         1: .line 1163
            aconst_null
            goto 3
         2: .line 1164
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            aload 1 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            aload 1 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSqlFunctionRegistry:()Lorg/hibernate/dialect/function/SQLFunctionRegistry;
            invokestatic org.hibernate.sql.Template.renderWhereStringTemplate:(Ljava/lang/String;Lorg/hibernate/dialect/Dialect;Lorg/hibernate/dialect/function/SQLFunctionRegistry;)Ljava/lang/String;
         3: .line 1162
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
        end local 1 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 0 // java.lang.String string
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0   string  Ljava/lang/String;
            0    4     1  factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
    MethodParameters:
         Name  Flags
      string   
      factory  

  public java.lang.String getTemplateFromColumn(org.hibernate.metamodel.relational.Column, org.hibernate.engine.spi.SessionFactoryImplementor);
    descriptor: (Lorg/hibernate/metamodel/relational/Column;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.metamodel.relational.Column column
        start local 2 // org.hibernate.engine.spi.SessionFactoryImplementor factory
         0: .line 1169
            aload 1 /* column */
            invokevirtual org.hibernate.metamodel.relational.Column.getReadFragment:()Ljava/lang/String;
            ifnull 3
         1: .line 1170
            aload 1 /* column */
            invokevirtual org.hibernate.metamodel.relational.Column.getReadFragment:()Ljava/lang/String;
            aload 2 /* factory */
            invokestatic org.hibernate.persister.entity.AbstractEntityPersister.getTemplateFromString:(Ljava/lang/String;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            astore 3 /* templateString */
        start local 3 // java.lang.String templateString
         2: .line 1171
            goto 5
        end local 3 // java.lang.String templateString
         3: .line 1173
      StackMap locals:
      StackMap stack:
            aload 1 /* column */
            invokevirtual org.hibernate.metamodel.relational.Column.getColumnName:()Lorg/hibernate/metamodel/relational/Identifier;
            aload 2 /* factory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokevirtual org.hibernate.metamodel.relational.Identifier.encloseInQuotesIfQuoted:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            astore 4 /* columnName */
        start local 4 // java.lang.String columnName
         4: .line 1174
            new java.lang.StringBuilder
            dup
            ldc "$PlaceHolder$."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* columnName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* templateString */
        end local 4 // java.lang.String columnName
        start local 3 // java.lang.String templateString
         5: .line 1176
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* templateString */
            areturn
        end local 3 // java.lang.String templateString
        end local 2 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 1 // org.hibernate.metamodel.relational.Column column
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    6     1          column  Lorg/hibernate/metamodel/relational/Column;
            0    6     2         factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            2    3     3  templateString  Ljava/lang/String;
            5    6     3  templateString  Ljava/lang/String;
            4    5     4      columnName  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      column   
      factory  

  protected java.lang.String generateLazySelectString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=10, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 1181
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.hasLazyProperties:()Z
            ifne 2
         1: .line 1182
            aconst_null
            areturn
         2: .line 1185
      StackMap locals:
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* tableNumbers */
        start local 1 // java.util.HashSet tableNumbers
         3: .line 1186
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* columnNumbers */
        start local 2 // java.util.ArrayList columnNumbers
         4: .line 1187
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* formulaNumbers */
        start local 3 // java.util.ArrayList formulaNumbers
         5: .line 1188
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: goto 25
         7: .line 1193
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.util.HashSet java.util.ArrayList java.util.ArrayList int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lazyPropertyNames:[Ljava/lang/String;
            iload 4 /* i */
            aaload
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyIndex:(Ljava/lang/String;)I
            istore 5 /* propertyNumber */
        start local 5 // int propertyNumber
         8: .line 1195
            aload 0 /* this */
            iload 5 /* propertyNumber */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyTableNumber:(I)I
            istore 6 /* tableNumber */
        start local 6 // int tableNumber
         9: .line 1196
            aload 1 /* tableNumbers */
            iload 6 /* tableNumber */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        10: .line 1198
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNumberClosure:[[I
            iload 5 /* propertyNumber */
            aaload
            astore 7 /* colNumbers */
        start local 7 // int[] colNumbers
        11: .line 1199
            iconst_0
            istore 8 /* j */
        start local 8 // int j
        12: goto 16
        13: .line 1200
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.util.HashSet java.util.ArrayList java.util.ArrayList int int int int[] int
      StackMap stack:
            aload 7 /* colNumbers */
            iload 8 /* j */
            iaload
            iconst_m1
            if_icmpeq 15
        14: .line 1201
            aload 2 /* columnNumbers */
            aload 7 /* colNumbers */
            iload 8 /* j */
            iaload
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        15: .line 1199
      StackMap locals:
      StackMap stack:
            iinc 8 /* j */ 1
      StackMap locals:
      StackMap stack:
        16: iload 8 /* j */
            aload 7 /* colNumbers */
            arraylength
            if_icmplt 13
        end local 8 // int j
        17: .line 1204
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyFormulaNumberClosure:[[I
            iload 5 /* propertyNumber */
            aaload
            astore 8 /* formNumbers */
        start local 8 // int[] formNumbers
        18: .line 1205
            iconst_0
            istore 9 /* j */
        start local 9 // int j
        19: goto 23
        20: .line 1206
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.util.HashSet java.util.ArrayList java.util.ArrayList int int int int[] int[] int
      StackMap stack:
            aload 8 /* formNumbers */
            iload 9 /* j */
            iaload
            iconst_m1
            if_icmpeq 22
        21: .line 1207
            aload 3 /* formulaNumbers */
            aload 8 /* formNumbers */
            iload 9 /* j */
            iaload
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        22: .line 1205
      StackMap locals:
      StackMap stack:
            iinc 9 /* j */ 1
      StackMap locals:
      StackMap stack:
        23: iload 9 /* j */
            aload 8 /* formNumbers */
            arraylength
            if_icmplt 20
        end local 9 // int j
        end local 8 // int[] formNumbers
        end local 7 // int[] colNumbers
        end local 6 // int tableNumber
        end local 5 // int propertyNumber
        24: .line 1188
            iinc 4 /* i */ 1
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.util.HashSet java.util.ArrayList java.util.ArrayList int
      StackMap stack:
        25: iload 4 /* i */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lazyPropertyNames:[Ljava/lang/String;
            arraylength
            if_icmplt 7
        end local 4 // int i
        26: .line 1212
            aload 2 /* columnNumbers */
            invokevirtual java.util.ArrayList.size:()I
            ifne 28
            aload 3 /* formulaNumbers */
            invokevirtual java.util.ArrayList.size:()I
            ifne 28
        27: .line 1214
            aconst_null
            areturn
        28: .line 1217
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* tableNumbers */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toIntArray:(Ljava/util/Collection;)[I
        29: .line 1218
            aload 2 /* columnNumbers */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toIntArray:(Ljava/util/Collection;)[I
        30: .line 1219
            aload 3 /* formulaNumbers */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toIntArray:(Ljava/util/Collection;)[I
        31: .line 1217
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.renderSelect:([I[I[I)Ljava/lang/String;
            areturn
        end local 3 // java.util.ArrayList formulaNumbers
        end local 2 // java.util.ArrayList columnNumbers
        end local 1 // java.util.HashSet tableNumbers
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   32     0            this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            3   32     1    tableNumbers  Ljava/util/HashSet;
            4   32     2   columnNumbers  Ljava/util/ArrayList;
            5   32     3  formulaNumbers  Ljava/util/ArrayList;
            6   26     4               i  I
            8   24     5  propertyNumber  I
            9   24     6     tableNumber  I
           11   24     7      colNumbers  [I
           12   17     8               j  I
           18   24     8     formNumbers  [I
           19   24     9               j  I

  public java.lang.Object initializeLazyProperty(java.lang.String, java.lang.Object, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=4
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String fieldName
        start local 2 // java.lang.Object entity
        start local 3 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 1226
            aload 3 /* session */
            aload 2 /* entity */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getContextEntityIdentifier:(Ljava/lang/Object;)Ljava/io/Serializable;
            astore 4 /* id */
        start local 4 // java.io.Serializable id
         1: .line 1228
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getPersistenceContext:()Lorg/hibernate/engine/spi/PersistenceContext;
            aload 2 /* entity */
            invokeinterface org.hibernate.engine.spi.PersistenceContext.getEntry:(Ljava/lang/Object;)Lorg/hibernate/engine/spi/EntityEntry;
            astore 5 /* entry */
        start local 5 // org.hibernate.engine.spi.EntityEntry entry
         2: .line 1229
            aload 5 /* entry */
            ifnonnull 4
         3: .line 1230
            new org.hibernate.HibernateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "entity is not associated with the session: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* id */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1233
      StackMap locals: java.io.Serializable org.hibernate.engine.spi.EntityEntry
      StackMap stack:
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 6
         5: .line 1234
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Initializing lazy properties of: {0}, field access: {1}"
            aload 0 /* this */
            aload 4 /* id */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            aload 1 /* fieldName */
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracev:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 1237
      StackMap locals:
      StackMap stack:
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getCacheMode:()Lorg/hibernate/CacheMode;
            invokevirtual org.hibernate.CacheMode.isGetEnabled:()Z
            ifeq 13
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasCache:()Z
            ifeq 13
         7: .line 1238
            aload 3 /* session */
            aload 4 /* id */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootEntityName:()Ljava/lang/String;
            invokeinterface org.hibernate.engine.spi.SessionImplementor.generateCacheKey:(Ljava/io/Serializable;Lorg/hibernate/type/Type;Ljava/lang/String;)Lorg/hibernate/cache/spi/CacheKey;
            astore 6 /* cacheKey */
        start local 6 // org.hibernate.cache.spi.CacheKey cacheKey
         8: .line 1239
            aload 3 /* session */
            aload 6 /* cacheKey */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getCacheAccessStrategy:()Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;
            invokestatic org.hibernate.engine.internal.CacheHelper.fromSharedCache:(Lorg/hibernate/engine/spi/SessionImplementor;Lorg/hibernate/cache/spi/CacheKey;Lorg/hibernate/cache/spi/access/RegionAccessStrategy;)Ljava/io/Serializable;
            astore 7 /* ce */
        start local 7 // java.lang.Object ce
         9: .line 1240
            aload 7 /* ce */
            ifnull 13
        10: .line 1241
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getCacheEntryStructure:()Lorg/hibernate/cache/spi/entry/CacheEntryStructure;
            aload 7 /* ce */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.cache.spi.entry.CacheEntryStructure.destructure:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/Object;
            checkcast org.hibernate.cache.spi.entry.CacheEntry
            astore 8 /* cacheEntry */
        start local 8 // org.hibernate.cache.spi.entry.CacheEntry cacheEntry
        11: .line 1242
            aload 8 /* cacheEntry */
            invokeinterface org.hibernate.cache.spi.entry.CacheEntry.areLazyPropertiesUnfetched:()Z
            ifne 13
        12: .line 1244
            aload 0 /* this */
            aload 1 /* fieldName */
            aload 2 /* entity */
            aload 3 /* session */
            aload 5 /* entry */
            aload 8 /* cacheEntry */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.initializeLazyPropertiesFromCache:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;Lorg/hibernate/engine/spi/EntityEntry;Lorg/hibernate/cache/spi/entry/CacheEntry;)Ljava/lang/Object;
            areturn
        end local 8 // org.hibernate.cache.spi.entry.CacheEntry cacheEntry
        end local 7 // java.lang.Object ce
        end local 6 // org.hibernate.cache.spi.CacheKey cacheKey
        13: .line 1249
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* fieldName */
            aload 2 /* entity */
            aload 3 /* session */
            aload 4 /* id */
            aload 5 /* entry */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.initializeLazyPropertiesFromDatastore:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;Ljava/io/Serializable;Lorg/hibernate/engine/spi/EntityEntry;)Ljava/lang/Object;
            areturn
        end local 5 // org.hibernate.engine.spi.EntityEntry entry
        end local 4 // java.io.Serializable id
        end local 3 // org.hibernate.engine.spi.SessionImplementor session
        end local 2 // java.lang.Object entity
        end local 1 // java.lang.String fieldName
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   14     1   fieldName  Ljava/lang/String;
            0   14     2      entity  Ljava/lang/Object;
            0   14     3     session  Lorg/hibernate/engine/spi/SessionImplementor;
            1   14     4          id  Ljava/io/Serializable;
            2   14     5       entry  Lorg/hibernate/engine/spi/EntityEntry;
            8   13     6    cacheKey  Lorg/hibernate/cache/spi/CacheKey;
            9   13     7          ce  Ljava/lang/Object;
           11   13     8  cacheEntry  Lorg/hibernate/cache/spi/entry/CacheEntry;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
           Name  Flags
      fieldName  
      entity     
      session    

  private java.lang.Object initializeLazyPropertiesFromDatastore(java.lang.String, java.lang.Object, org.hibernate.engine.spi.SessionImplementor, java.io.Serializable, org.hibernate.engine.spi.EntityEntry);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;Ljava/io/Serializable;Lorg/hibernate/engine/spi/EntityEntry;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=15, args_size=6
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String fieldName
        start local 2 // java.lang.Object entity
        start local 3 // org.hibernate.engine.spi.SessionImplementor session
        start local 4 // java.io.Serializable id
        start local 5 // org.hibernate.engine.spi.EntityEntry entry
         0: .line 1260
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasLazyProperties:()Z
            ifne 1
            new org.hibernate.AssertionFailure
            dup
            ldc "no lazy properties"
            invokespecial org.hibernate.AssertionFailure.<init>:(Ljava/lang/String;)V
            athrow
         1: .line 1262
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Initializing lazy properties from datastore"
            invokeinterface org.hibernate.internal.CoreMessageLogger.trace:(Ljava/lang/Object;)V
         2: .line 1266
            aconst_null
            astore 6 /* result */
        start local 6 // java.lang.Object result
         3: .line 1267
            aconst_null
            astore 7 /* ps */
        start local 7 // java.sql.PreparedStatement ps
         4: .line 1269
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSQLLazySelectString:()Ljava/lang/String;
            astore 8 /* lazySelect */
        start local 8 // java.lang.String lazySelect
         5: .line 1270
            aconst_null
            astore 9 /* rs */
        start local 9 // java.sql.ResultSet rs
         6: .line 1272
            aload 8 /* lazySelect */
            ifnull 15
         7: .line 1276
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
         8: .line 1277
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
         9: .line 1278
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
        10: .line 1279
            aload 8 /* lazySelect */
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
        11: .line 1276
            astore 7 /* ps */
        12: .line 1280
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            aload 7 /* ps */
            aload 4 /* id */
            iconst_1
            aload 3 /* session */
            invokeinterface org.hibernate.type.Type.nullSafeSet:(Ljava/sql/PreparedStatement;Ljava/lang/Object;ILorg/hibernate/engine/spi/SessionImplementor;)V
        13: .line 1281
            aload 3 /* 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 7 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.ResultSetReturn.extract:(Ljava/sql/PreparedStatement;)Ljava/sql/ResultSet;
            astore 9 /* rs */
        14: .line 1282
            aload 9 /* rs */
            invokeinterface java.sql.ResultSet.next:()Z
            pop
        15: .line 1284
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.Object org.hibernate.engine.spi.SessionImplementor java.io.Serializable org.hibernate.engine.spi.EntityEntry java.lang.Object java.sql.PreparedStatement java.lang.String java.sql.ResultSet
      StackMap stack:
            aload 5 /* entry */
            invokevirtual org.hibernate.engine.spi.EntityEntry.getLoadedState:()[Ljava/lang/Object;
            astore 10 /* snapshot */
        start local 10 // java.lang.Object[] snapshot
        16: .line 1285
            iconst_0
            istore 11 /* j */
        start local 11 // int j
        17: goto 22
        18: .line 1286
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lazyPropertyTypes:[Lorg/hibernate/type/Type;
            iload 11 /* j */
            aaload
            aload 9 /* rs */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lazyPropertyColumnAliases:[[Ljava/lang/String;
            iload 11 /* j */
            aaload
            aload 3 /* session */
            aload 2 /* entity */
            invokeinterface org.hibernate.type.Type.nullSafeGet:(Ljava/sql/ResultSet;[Ljava/lang/String;Lorg/hibernate/engine/spi/SessionImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            astore 12 /* propValue */
        start local 12 // java.lang.Object propValue
        19: .line 1287
            aload 0 /* this */
            aload 1 /* fieldName */
            aload 2 /* entity */
            aload 3 /* session */
            aload 10 /* snapshot */
            iload 11 /* j */
            aload 12 /* propValue */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.initializeLazyProperty:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;[Ljava/lang/Object;ILjava/lang/Object;)Z
            ifeq 21
        20: .line 1288
            aload 12 /* propValue */
            astore 6 /* result */
        end local 12 // java.lang.Object propValue
        21: .line 1285
      StackMap locals:
      StackMap stack:
            iinc 11 /* j */ 1
      StackMap locals:
      StackMap stack:
        22: iload 11 /* j */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lazyPropertyNames:[Ljava/lang/String;
            arraylength
            if_icmplt 18
        end local 11 // int j
        end local 10 // java.lang.Object[] snapshot
        23: .line 1291
            goto 28
        24: .line 1292
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.Object org.hibernate.engine.spi.SessionImplementor java.io.Serializable org.hibernate.engine.spi.EntityEntry java.lang.Object java.sql.PreparedStatement java.lang.String java.sql.ResultSet
      StackMap stack: java.lang.Throwable
            astore 13
        25: .line 1293
            aload 9 /* rs */
            ifnull 27
        26: .line 1294
            aload 3 /* 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 9 /* rs */
            aload 7 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        27: .line 1296
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.Object org.hibernate.engine.spi.SessionImplementor java.io.Serializable org.hibernate.engine.spi.EntityEntry java.lang.Object java.sql.PreparedStatement java.lang.String java.sql.ResultSet top top top java.lang.Throwable
      StackMap stack:
            aload 13
            athrow
        28: .line 1293
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.Object org.hibernate.engine.spi.SessionImplementor java.io.Serializable org.hibernate.engine.spi.EntityEntry java.lang.Object java.sql.PreparedStatement java.lang.String java.sql.ResultSet
      StackMap stack:
            aload 9 /* rs */
            ifnull 35
        29: .line 1294
            aload 3 /* 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 9 /* rs */
            aload 7 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        end local 9 // java.sql.ResultSet rs
        end local 8 // java.lang.String lazySelect
        30: .line 1297
            goto 35
        31: .line 1298
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.Object org.hibernate.engine.spi.SessionImplementor java.io.Serializable org.hibernate.engine.spi.EntityEntry java.lang.Object java.sql.PreparedStatement
      StackMap stack: java.lang.Throwable
            astore 14
        32: .line 1299
            aload 7 /* ps */
            ifnull 34
        33: .line 1300
            aload 3 /* 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 7 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        34: .line 1302
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.Object org.hibernate.engine.spi.SessionImplementor java.io.Serializable org.hibernate.engine.spi.EntityEntry java.lang.Object java.sql.PreparedStatement top top top top top top java.lang.Throwable
      StackMap stack:
            aload 14
            athrow
        35: .line 1299
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.Object org.hibernate.engine.spi.SessionImplementor java.io.Serializable org.hibernate.engine.spi.EntityEntry java.lang.Object java.sql.PreparedStatement
      StackMap stack:
            aload 7 /* ps */
            ifnull 37
        36: .line 1300
            aload 3 /* 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 7 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        37: .line 1304
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Done initializing lazy properties"
            invokeinterface org.hibernate.internal.CoreMessageLogger.trace:(Ljava/lang/Object;)V
        38: .line 1306
            aload 6 /* result */
        39: areturn
        end local 7 // java.sql.PreparedStatement ps
        end local 6 // java.lang.Object result
        40: .line 1309
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.Object org.hibernate.engine.spi.SessionImplementor java.io.Serializable org.hibernate.engine.spi.EntityEntry
      StackMap stack: java.sql.SQLException
            astore 6 /* sqle */
        start local 6 // java.sql.SQLException sqle
        41: .line 1310
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSQLExceptionHelper:()Lorg/hibernate/engine/jdbc/spi/SqlExceptionHelper;
        42: .line 1311
            aload 6 /* sqle */
        43: .line 1312
            new java.lang.StringBuilder
            dup
            ldc "could not initialize lazy properties: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        44: .line 1313
            aload 0 /* this */
            aload 4 /* id */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        45: .line 1312
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        46: .line 1314
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSQLLazySelectString:()Ljava/lang/String;
        47: .line 1310
            invokevirtual org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert:(Ljava/sql/SQLException;Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/JDBCException;
            athrow
        end local 6 // java.sql.SQLException sqle
        end local 5 // org.hibernate.engine.spi.EntityEntry entry
        end local 4 // java.io.Serializable id
        end local 3 // org.hibernate.engine.spi.SessionImplementor session
        end local 2 // java.lang.Object entity
        end local 1 // java.lang.String fieldName
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   48     0        this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   48     1   fieldName  Ljava/lang/String;
            0   48     2      entity  Ljava/lang/Object;
            0   48     3     session  Lorg/hibernate/engine/spi/SessionImplementor;
            0   48     4          id  Ljava/io/Serializable;
            0   48     5       entry  Lorg/hibernate/engine/spi/EntityEntry;
            3   40     6      result  Ljava/lang/Object;
            4   40     7          ps  Ljava/sql/PreparedStatement;
            5   30     8  lazySelect  Ljava/lang/String;
            6   30     9          rs  Ljava/sql/ResultSet;
           16   23    10    snapshot  [Ljava/lang/Object;
           17   23    11           j  I
           19   21    12   propValue  Ljava/lang/Object;
           41   48     6        sqle  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           6    24      24  any
           4    31      31  any
           2    39      40  Class java.sql.SQLException
    MethodParameters:
           Name  Flags
      fieldName  final
      entity     final
      session    final
      id         final
      entry      final

  private java.lang.Object initializeLazyPropertiesFromCache(java.lang.String, java.lang.Object, org.hibernate.engine.spi.SessionImplementor, org.hibernate.engine.spi.EntityEntry, org.hibernate.cache.spi.entry.CacheEntry);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;Lorg/hibernate/engine/spi/EntityEntry;Lorg/hibernate/cache/spi/entry/CacheEntry;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=11, args_size=6
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String fieldName
        start local 2 // java.lang.Object entity
        start local 3 // org.hibernate.engine.spi.SessionImplementor session
        start local 4 // org.hibernate.engine.spi.EntityEntry entry
        start local 5 // org.hibernate.cache.spi.entry.CacheEntry cacheEntry
         0: .line 1327
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Initializing lazy properties from second-level cache"
            invokeinterface org.hibernate.internal.CoreMessageLogger.trace:(Ljava/lang/Object;)V
         1: .line 1329
            aconst_null
            astore 6 /* result */
        start local 6 // java.lang.Object result
         2: .line 1330
            aload 5 /* cacheEntry */
            invokeinterface org.hibernate.cache.spi.entry.CacheEntry.getDisassembledState:()[Ljava/io/Serializable;
            astore 7 /* disassembledValues */
        start local 7 // java.io.Serializable[] disassembledValues
         3: .line 1331
            aload 4 /* entry */
            invokevirtual org.hibernate.engine.spi.EntityEntry.getLoadedState:()[Ljava/lang/Object;
            astore 8 /* snapshot */
        start local 8 // java.lang.Object[] snapshot
         4: .line 1332
            iconst_0
            istore 9 /* j */
        start local 9 // int j
         5: goto 14
         6: .line 1333
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.Object org.hibernate.engine.spi.SessionImplementor org.hibernate.engine.spi.EntityEntry org.hibernate.cache.spi.entry.CacheEntry java.lang.Object java.io.Serializable[] java.lang.Object[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lazyPropertyTypes:[Lorg/hibernate/type/Type;
            iload 9 /* j */
            aaload
         7: .line 1334
            aload 7 /* disassembledValues */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lazyPropertyNumbers:[I
            iload 9 /* j */
            iaload
            aaload
         8: .line 1335
            aload 3 /* session */
         9: .line 1336
            aload 2 /* entity */
        10: .line 1333
            invokeinterface org.hibernate.type.Type.assemble:(Ljava/io/Serializable;Lorg/hibernate/engine/spi/SessionImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            astore 10 /* propValue */
        start local 10 // java.lang.Object propValue
        11: .line 1338
            aload 0 /* this */
            aload 1 /* fieldName */
            aload 2 /* entity */
            aload 3 /* session */
            aload 8 /* snapshot */
            iload 9 /* j */
            aload 10 /* propValue */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.initializeLazyProperty:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;[Ljava/lang/Object;ILjava/lang/Object;)Z
            ifeq 13
        12: .line 1339
            aload 10 /* propValue */
            astore 6 /* result */
        end local 10 // java.lang.Object propValue
        13: .line 1332
      StackMap locals:
      StackMap stack:
            iinc 9 /* j */ 1
      StackMap locals:
      StackMap stack:
        14: iload 9 /* j */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lazyPropertyNames:[Ljava/lang/String;
            arraylength
            if_icmplt 6
        end local 9 // int j
        15: .line 1343
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Done initializing lazy properties"
            invokeinterface org.hibernate.internal.CoreMessageLogger.trace:(Ljava/lang/Object;)V
        16: .line 1345
            aload 6 /* result */
            areturn
        end local 8 // java.lang.Object[] snapshot
        end local 7 // java.io.Serializable[] disassembledValues
        end local 6 // java.lang.Object result
        end local 5 // org.hibernate.cache.spi.entry.CacheEntry cacheEntry
        end local 4 // org.hibernate.engine.spi.EntityEntry entry
        end local 3 // org.hibernate.engine.spi.SessionImplementor session
        end local 2 // java.lang.Object entity
        end local 1 // java.lang.String fieldName
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   17     0                this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   17     1           fieldName  Ljava/lang/String;
            0   17     2              entity  Ljava/lang/Object;
            0   17     3             session  Lorg/hibernate/engine/spi/SessionImplementor;
            0   17     4               entry  Lorg/hibernate/engine/spi/EntityEntry;
            0   17     5          cacheEntry  Lorg/hibernate/cache/spi/entry/CacheEntry;
            2   17     6              result  Ljava/lang/Object;
            3   17     7  disassembledValues  [Ljava/io/Serializable;
            4   17     8            snapshot  [Ljava/lang/Object;
            5   15     9                   j  I
           11   13    10           propValue  Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      fieldName   final
      entity      final
      session     final
      entry       final
      cacheEntry  final

  private boolean initializeLazyProperty(java.lang.String, java.lang.Object, org.hibernate.engine.spi.SessionImplementor, java.lang.Object[], int, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;[Ljava/lang/Object;ILjava/lang/Object;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=7
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String fieldName
        start local 2 // java.lang.Object entity
        start local 3 // org.hibernate.engine.spi.SessionImplementor session
        start local 4 // java.lang.Object[] snapshot
        start local 5 // int j
        start local 6 // java.lang.Object propValue
         0: .line 1355
            aload 0 /* this */
            aload 2 /* entity */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lazyPropertyNumbers:[I
            iload 5 /* j */
            iaload
            aload 6 /* propValue */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValue:(Ljava/lang/Object;ILjava/lang/Object;)V
         1: .line 1356
            aload 4 /* snapshot */
            ifnull 3
         2: .line 1358
            aload 4 /* snapshot */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lazyPropertyNumbers:[I
            iload 5 /* j */
            iaload
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lazyPropertyTypes:[Lorg/hibernate/type/Type;
            iload 5 /* j */
            aaload
            aload 6 /* propValue */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.type.Type.deepCopy:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/Object;
            aastore
         3: .line 1360
      StackMap locals:
      StackMap stack:
            aload 1 /* fieldName */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lazyPropertyNames:[Ljava/lang/String;
            iload 5 /* j */
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 6 // java.lang.Object propValue
        end local 5 // int j
        end local 4 // java.lang.Object[] snapshot
        end local 3 // org.hibernate.engine.spi.SessionImplementor session
        end local 2 // java.lang.Object entity
        end local 1 // java.lang.String fieldName
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    4     1  fieldName  Ljava/lang/String;
            0    4     2     entity  Ljava/lang/Object;
            0    4     3    session  Lorg/hibernate/engine/spi/SessionImplementor;
            0    4     4   snapshot  [Ljava/lang/Object;
            0    4     5          j  I
            0    4     6  propValue  Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      fieldName  final
      entity     final
      session    final
      snapshot   final
      j          final
      propValue  final

  public boolean isBatchable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 1364
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.optimisticLockStyle:()Lorg/hibernate/engine/OptimisticLockStyle;
            getstatic org.hibernate.engine.OptimisticLockStyle.NONE:Lorg/hibernate/engine/OptimisticLockStyle;
            if_acmpeq 4
         1: .line 1365
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifne 2
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.optimisticLockStyle:()Lorg/hibernate/engine/OptimisticLockStyle;
            getstatic org.hibernate.engine.OptimisticLockStyle.VERSION:Lorg/hibernate/engine/OptimisticLockStyle;
            if_acmpeq 4
         2: .line 1366
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.isJdbcBatchVersionedData:()Z
            ifne 4
         3: .line 1364
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_1
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.io.Serializable[] getQuerySpaces();
    descriptor: ()[Ljava/io/Serializable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 1370
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertySpaces:()[Ljava/io/Serializable;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected java.util.Set getLazyProperties();
    descriptor: ()Ljava/util/Set;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 1374
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lazyProperties:Ljava/util/Set;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean isBatchLoadable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 1378
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.batchSize:I
            iconst_1
            if_icmple 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.String[] getIdentifierColumnNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 1382
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.rootTableKeyColumnNames:[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.String[] getIdentifierColumnReaders();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 1386
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.rootTableKeyColumnReaders:[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.String[] getIdentifierColumnReaderTemplates();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 1390
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.rootTableKeyColumnReaderTemplates:[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected int getIdentifierColumnSpan();
    descriptor: ()I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 1394
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.identifierColumnSpan:I
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected java.lang.String[] getIdentifierAliases();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 1398
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.identifierAliases:[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.String getVersionColumnName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 1402
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.versionColumnName:Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected java.lang.String getVersionedTableName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 1406
            aload 0 /* this */
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableName:(I)Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected boolean[] getSubclassColumnLazyiness();
    descriptor: ()[Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 1410
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassColumnLazyClosure:[Z
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected boolean[] getSubclassFormulaLazyiness();
    descriptor: ()[Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 1414
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassFormulaLazyClosure:[Z
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean isCacheInvalidationRequired();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 1427
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasFormulaProperties:()Z
            ifne 4
         1: .line 1428
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifne 3
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.isDynamicUpdate:()Z
            ifne 4
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableSpan:()I
            iconst_1
         2: .line 1427
            if_icmpgt 4
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_1
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

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

  public java.lang.String selectFragment(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String alias
        start local 2 // java.lang.String suffix
         0: .line 1436
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            aload 1 /* alias */
            aload 2 /* suffix */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.identifierSelectFragment:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 1437
            aload 0 /* this */
            aload 1 /* alias */
            aload 2 /* suffix */
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.propertySelectFragment:(Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 1436
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.String suffix
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    3     1   alias  Ljava/lang/String;
            0    3     2  suffix  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      alias   
      suffix  

  public java.lang.String[] getIdentifierAliases(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String suffix
         0: .line 1444
            new org.hibernate.sql.Alias
            dup
            aload 1 /* suffix */
            invokespecial org.hibernate.sql.Alias.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierAliases:()[Ljava/lang/String;
            invokevirtual org.hibernate.sql.Alias.toAliasStrings:([Ljava/lang/String;)[Ljava/lang/String;
            areturn
        end local 1 // java.lang.String suffix
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  suffix  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      suffix  

  public java.lang.String[] getPropertyAliases(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String suffix
        start local 2 // int i
         0: .line 1449
            new org.hibernate.sql.Alias
            dup
            aload 1 /* suffix */
            invokespecial org.hibernate.sql.Alias.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnAliases:[[Ljava/lang/String;
            iload 2 /* i */
            aaload
            invokevirtual org.hibernate.sql.Alias.toUnquotedAliasStrings:([Ljava/lang/String;)[Ljava/lang/String;
            areturn
        end local 2 // int i
        end local 1 // java.lang.String suffix
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  suffix  Ljava/lang/String;
            0    1     2       i  I
    MethodParameters:
        Name  Flags
      suffix  
      i       

  public java.lang.String getDiscriminatorAlias(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String suffix
         0: .line 1456
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.hasSubclasses:()Z
            ifeq 2
         1: .line 1457
            new org.hibernate.sql.Alias
            dup
            aload 1 /* suffix */
            invokespecial org.hibernate.sql.Alias.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getDiscriminatorAlias:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Alias.toAliasString:(Ljava/lang/String;)Ljava/lang/String;
            goto 3
         2: .line 1458
      StackMap locals:
      StackMap stack:
            aconst_null
         3: .line 1456
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
        end local 1 // java.lang.String suffix
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    4     1  suffix  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      suffix  

  public java.lang.String identifierSelectFragment(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String suffix
         0: .line 1462
            new org.hibernate.sql.SelectFragment
            dup
            invokespecial org.hibernate.sql.SelectFragment.<init>:()V
         1: .line 1463
            aload 2 /* suffix */
            invokevirtual org.hibernate.sql.SelectFragment.setSuffix:(Ljava/lang/String;)Lorg/hibernate/sql/SelectFragment;
         2: .line 1464
            aload 1 /* name */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnNames:()[Ljava/lang/String;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierAliases:()[Ljava/lang/String;
            invokevirtual org.hibernate.sql.SelectFragment.addColumns:(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Lorg/hibernate/sql/SelectFragment;
         3: .line 1465
            invokevirtual org.hibernate.sql.SelectFragment.toFragmentString:()Ljava/lang/String;
         4: .line 1466
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
         5: .line 1462
            areturn
        end local 2 // java.lang.String suffix
        end local 1 // java.lang.String name
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    6     1    name  Ljava/lang/String;
            0    6     2  suffix  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      name    
      suffix  

  public java.lang.String propertySelectFragment(java.lang.String, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String tableAlias
        start local 2 // java.lang.String suffix
        start local 3 // boolean allProperties
         0: .line 1471
            aload 0 /* this */
            aload 1 /* tableAlias */
            aload 2 /* suffix */
            iload 3 /* allProperties */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.propertySelectFragmentFragment:(Ljava/lang/String;Ljava/lang/String;Z)Lorg/hibernate/sql/SelectFragment;
            invokevirtual org.hibernate.sql.SelectFragment.toFragmentString:()Ljava/lang/String;
            areturn
        end local 3 // boolean allProperties
        end local 2 // java.lang.String suffix
        end local 1 // java.lang.String tableAlias
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1     tableAlias  Ljava/lang/String;
            0    1     2         suffix  Ljava/lang/String;
            0    1     3  allProperties  Z
    MethodParameters:
               Name  Flags
      tableAlias     
      suffix         
      allProperties  

  public org.hibernate.sql.SelectFragment propertySelectFragmentFragment(java.lang.String, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Z)Lorg/hibernate/sql/SelectFragment;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=14, args_size=4
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String tableAlias
        start local 2 // java.lang.String suffix
        start local 3 // boolean allProperties
         0: .line 1478
            new org.hibernate.sql.SelectFragment
            dup
            invokespecial org.hibernate.sql.SelectFragment.<init>:()V
         1: .line 1479
            aload 2 /* suffix */
            invokevirtual org.hibernate.sql.SelectFragment.setSuffix:(Ljava/lang/String;)Lorg/hibernate/sql/SelectFragment;
         2: .line 1480
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierAliases:()[Ljava/lang/String;
            invokevirtual org.hibernate.sql.SelectFragment.setUsedAliases:([Ljava/lang/String;)Lorg/hibernate/sql/SelectFragment;
         3: .line 1478
            astore 4 /* select */
        start local 4 // org.hibernate.sql.SelectFragment select
         4: .line 1482
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassColumnTableNumberClosure:()[I
            astore 5 /* columnTableNumbers */
        start local 5 // int[] columnTableNumbers
         5: .line 1483
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassColumnAliasClosure:()[Ljava/lang/String;
            astore 6 /* columnAliases */
        start local 6 // java.lang.String[] columnAliases
         6: .line 1484
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassColumnReaderTemplateClosure:()[Ljava/lang/String;
            astore 7 /* columnReaderTemplates */
        start local 7 // java.lang.String[] columnReaderTemplates
         7: .line 1485
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         8: goto 19
         9: .line 1486
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.String int org.hibernate.sql.SelectFragment int[] java.lang.String[] java.lang.String[] int
      StackMap stack:
            iload 3 /* allProperties */
            ifne 10
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassColumnLazyClosure:[Z
            iload 8 /* i */
            baload
            ifne 13
        10: .line 1487
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* columnTableNumbers */
            iload 8 /* i */
            iaload
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isSubclassTableSequentialSelect:(I)Z
            ifne 13
        11: .line 1488
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassColumnSelectableClosure:[Z
            iload 8 /* i */
            baload
            ifeq 13
        12: .line 1486
            iconst_1
            goto 14
      StackMap locals:
      StackMap stack:
        13: iconst_0
      StackMap locals:
      StackMap stack: int
        14: istore 9 /* selectable */
        start local 9 // boolean selectable
        15: .line 1489
            iload 9 /* selectable */
            ifeq 18
        16: .line 1490
            aload 1 /* tableAlias */
            aload 5 /* columnTableNumbers */
            iload 8 /* i */
            iaload
            invokestatic org.hibernate.persister.entity.AbstractEntityPersister.generateTableAlias:(Ljava/lang/String;I)Ljava/lang/String;
            astore 10 /* subalias */
        start local 10 // java.lang.String subalias
        17: .line 1491
            aload 4 /* select */
            aload 10 /* subalias */
            aload 7 /* columnReaderTemplates */
            iload 8 /* i */
            aaload
            aload 6 /* columnAliases */
            iload 8 /* i */
            aaload
            invokevirtual org.hibernate.sql.SelectFragment.addColumnTemplate:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/SelectFragment;
            pop
        end local 10 // java.lang.String subalias
        end local 9 // boolean selectable
        18: .line 1485
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 8 /* i */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassColumnClosure:()[Ljava/lang/String;
            arraylength
            if_icmplt 9
        end local 8 // int i
        20: .line 1495
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassFormulaTableNumberClosure:()[I
            astore 8 /* formulaTableNumbers */
        start local 8 // int[] formulaTableNumbers
        21: .line 1496
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassFormulaTemplateClosure:()[Ljava/lang/String;
            astore 9 /* formulaTemplates */
        start local 9 // java.lang.String[] formulaTemplates
        22: .line 1497
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassFormulaAliasClosure:()[Ljava/lang/String;
            astore 10 /* formulaAliases */
        start local 10 // java.lang.String[] formulaAliases
        23: .line 1498
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        24: goto 34
        25: .line 1499
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.String int org.hibernate.sql.SelectFragment int[] java.lang.String[] java.lang.String[] int[] java.lang.String[] java.lang.String[] int
      StackMap stack:
            iload 3 /* allProperties */
            ifne 26
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassFormulaLazyClosure:[Z
            iload 11 /* i */
            baload
            ifne 28
        26: .line 1500
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 8 /* formulaTableNumbers */
            iload 11 /* i */
            iaload
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isSubclassTableSequentialSelect:(I)Z
            ifne 28
        27: .line 1499
            iconst_1
            goto 29
      StackMap locals:
      StackMap stack:
        28: iconst_0
      StackMap locals:
      StackMap stack: int
        29: istore 12 /* selectable */
        start local 12 // boolean selectable
        30: .line 1501
            iload 12 /* selectable */
            ifeq 33
        31: .line 1502
            aload 1 /* tableAlias */
            aload 8 /* formulaTableNumbers */
            iload 11 /* i */
            iaload
            invokestatic org.hibernate.persister.entity.AbstractEntityPersister.generateTableAlias:(Ljava/lang/String;I)Ljava/lang/String;
            astore 13 /* subalias */
        start local 13 // java.lang.String subalias
        32: .line 1503
            aload 4 /* select */
            aload 13 /* subalias */
            aload 9 /* formulaTemplates */
            iload 11 /* i */
            aaload
            aload 10 /* formulaAliases */
            iload 11 /* i */
            aaload
            invokevirtual org.hibernate.sql.SelectFragment.addFormula:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/SelectFragment;
            pop
        end local 13 // java.lang.String subalias
        end local 12 // boolean selectable
        33: .line 1498
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        34: iload 11 /* i */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassFormulaTemplateClosure:()[Ljava/lang/String;
            arraylength
            if_icmplt 25
        end local 11 // int i
        35: .line 1507
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.hasSubclasses:()Z
            ifeq 37
        36: .line 1508
            aload 0 /* this */
            aload 4 /* select */
            aload 1 /* tableAlias */
            aload 2 /* suffix */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.addDiscriminatorToSelect:(Lorg/hibernate/sql/SelectFragment;Ljava/lang/String;Ljava/lang/String;)V
        37: .line 1511
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasRowId:()Z
            ifeq 39
        38: .line 1512
            aload 4 /* select */
            aload 1 /* tableAlias */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.rowIdName:Ljava/lang/String;
            ldc "rowid_"
            invokevirtual org.hibernate.sql.SelectFragment.addColumn:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/SelectFragment;
            pop
        39: .line 1515
      StackMap locals:
      StackMap stack:
            aload 4 /* select */
            areturn
        end local 10 // java.lang.String[] formulaAliases
        end local 9 // java.lang.String[] formulaTemplates
        end local 8 // int[] formulaTableNumbers
        end local 7 // java.lang.String[] columnReaderTemplates
        end local 6 // java.lang.String[] columnAliases
        end local 5 // int[] columnTableNumbers
        end local 4 // org.hibernate.sql.SelectFragment select
        end local 3 // boolean allProperties
        end local 2 // java.lang.String suffix
        end local 1 // java.lang.String tableAlias
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   40     0                   this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   40     1             tableAlias  Ljava/lang/String;
            0   40     2                 suffix  Ljava/lang/String;
            0   40     3          allProperties  Z
            4   40     4                 select  Lorg/hibernate/sql/SelectFragment;
            5   40     5     columnTableNumbers  [I
            6   40     6          columnAliases  [Ljava/lang/String;
            7   40     7  columnReaderTemplates  [Ljava/lang/String;
            8   20     8                      i  I
           15   18     9             selectable  Z
           17   18    10               subalias  Ljava/lang/String;
           21   40     8    formulaTableNumbers  [I
           22   40     9       formulaTemplates  [Ljava/lang/String;
           23   40    10         formulaAliases  [Ljava/lang/String;
           24   35    11                      i  I
           30   33    12             selectable  Z
           32   33    13               subalias  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      tableAlias     
      suffix         
      allProperties  

  public java.lang.Object[] getDatabaseSnapshot(java.io.Serializable, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/io/Serializable;Lorg/hibernate/engine/spi/SessionImplementor;)[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=12, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.io.Serializable id
        start local 2 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 1521
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 2
         1: .line 1522
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Getting current persistent state for: {0}"
            aload 0 /* this */
            aload 1 /* id */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracev:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 1526
      StackMap locals:
      StackMap stack:
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
         3: .line 1527
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
         4: .line 1528
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
         5: .line 1529
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSQLSnapshotSelectString:()Ljava/lang/String;
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
         6: .line 1526
            astore 3 /* ps */
        start local 3 // java.sql.PreparedStatement ps
         7: .line 1531
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            aload 3 /* ps */
            aload 1 /* id */
            iconst_1
            aload 2 /* session */
            invokeinterface org.hibernate.type.Type.nullSafeSet:(Ljava/sql/PreparedStatement;Ljava/lang/Object;ILorg/hibernate/engine/spi/SessionImplementor;)V
         8: .line 1533
            aload 2 /* 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.extract:(Ljava/sql/PreparedStatement;)Ljava/sql/ResultSet;
            astore 4 /* rs */
        start local 4 // java.sql.ResultSet rs
         9: .line 1536
            aload 4 /* rs */
            invokeinterface java.sql.ResultSet.next:()Z
            ifne 13
        10: .line 1551
            aload 2 /* 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 4 /* rs */
            aload 3 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        11: .line 1555
            aload 2 /* 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
        12: .line 1537
            aconst_null
            areturn
        13: .line 1540
      StackMap locals: java.sql.PreparedStatement java.sql.ResultSet
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyTypes:()[Lorg/hibernate/type/Type;
            astore 5 /* types */
        start local 5 // org.hibernate.type.Type[] types
        14: .line 1541
            aload 5 /* types */
            arraylength
            anewarray java.lang.Object
            astore 6 /* values */
        start local 6 // java.lang.Object[] values
        15: .line 1542
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyUpdateability:()[Z
            astore 7 /* includeProperty */
        start local 7 // boolean[] includeProperty
        16: .line 1543
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        17: goto 21
        18: .line 1544
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable org.hibernate.engine.spi.SessionImplementor java.sql.PreparedStatement java.sql.ResultSet org.hibernate.type.Type[] java.lang.Object[] boolean[] int
      StackMap stack:
            aload 7 /* includeProperty */
            iload 8 /* i */
            baload
            ifeq 20
        19: .line 1545
            aload 6 /* values */
            iload 8 /* i */
            aload 5 /* types */
            iload 8 /* i */
            aaload
            aload 4 /* rs */
            aload 0 /* this */
            ldc ""
            iload 8 /* i */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyAliases:(Ljava/lang/String;I)[Ljava/lang/String;
            aload 2 /* session */
            aconst_null
            invokeinterface org.hibernate.type.Type.hydrate:(Ljava/sql/ResultSet;[Ljava/lang/String;Lorg/hibernate/engine/spi/SessionImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            aastore
        20: .line 1543
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 8 /* i */
            aload 5 /* types */
            arraylength
            if_icmplt 18
        end local 8 // int i
        22: .line 1548
            aload 6 /* values */
            astore 10
        23: .line 1551
            aload 2 /* 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 4 /* rs */
            aload 3 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        24: .line 1555
            aload 2 /* 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
        25: .line 1548
            aload 10
            areturn
        end local 7 // boolean[] includeProperty
        end local 6 // java.lang.Object[] values
        end local 5 // org.hibernate.type.Type[] types
        26: .line 1550
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable org.hibernate.engine.spi.SessionImplementor java.sql.PreparedStatement java.sql.ResultSet
      StackMap stack: java.lang.Throwable
            astore 9
        27: .line 1551
            aload 2 /* 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 4 /* rs */
            aload 3 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        28: .line 1552
            aload 9
            athrow
        end local 4 // java.sql.ResultSet rs
        29: .line 1554
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable org.hibernate.engine.spi.SessionImplementor java.sql.PreparedStatement
      StackMap stack: java.lang.Throwable
            astore 11
        30: .line 1555
            aload 2 /* 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
        31: .line 1556
            aload 11
            athrow
        end local 3 // java.sql.PreparedStatement ps
        32: .line 1558
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable org.hibernate.engine.spi.SessionImplementor
      StackMap stack: java.sql.SQLException
            astore 3 /* e */
        start local 3 // java.sql.SQLException e
        33: .line 1559
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSQLExceptionHelper:()Lorg/hibernate/engine/jdbc/spi/SqlExceptionHelper;
        34: .line 1560
            aload 3 /* e */
        35: .line 1561
            new java.lang.StringBuilder
            dup
            ldc "could not retrieve snapshot: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            aload 1 /* id */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        36: .line 1562
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSQLSnapshotSelectString:()Ljava/lang/String;
        37: .line 1559
            invokevirtual org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert:(Ljava/sql/SQLException;Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/JDBCException;
            athrow
        end local 3 // java.sql.SQLException e
        end local 2 // org.hibernate.engine.spi.SessionImplementor session
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   38     0             this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   38     1               id  Ljava/io/Serializable;
            0   38     2          session  Lorg/hibernate/engine/spi/SessionImplementor;
            7   32     3               ps  Ljava/sql/PreparedStatement;
            9   29     4               rs  Ljava/sql/ResultSet;
           14   26     5            types  [Lorg/hibernate/type/Type;
           15   26     6           values  [Ljava/lang/Object;
           16   26     7  includeProperty  [Z
           17   22     8                i  I
           33   38     3                e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           9    10      26  any
          13    23      26  any
           7    11      29  any
          13    24      29  any
          26    29      29  any
           2    12      32  Class java.sql.SQLException
          13    25      32  Class java.sql.SQLException
          26    32      32  Class java.sql.SQLException
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
         Name  Flags
      id       
      session  

  public java.io.Serializable getIdByUniqueKey(java.io.Serializable, java.lang.String, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/io/Serializable;Ljava/lang/String;Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/io/Serializable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=11, args_size=4
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.io.Serializable key
        start local 2 // java.lang.String uniquePropertyName
        start local 3 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 1570
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 6
         1: .line 1571
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         2: .line 1572
            ldc "resolving unique key [%s] to identifier for entity [%s]"
         3: .line 1573
            aload 1 /* key */
         4: .line 1574
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
         5: .line 1571
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracef:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 1578
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* uniquePropertyName */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyIndex:(Ljava/lang/String;)I
            istore 4 /* propertyIndex */
        start local 4 // int propertyIndex
         7: .line 1579
            iload 4 /* propertyIndex */
            ifge 11
         8: .line 1580
            new org.hibernate.HibernateException
            dup
         9: .line 1581
            new java.lang.StringBuilder
            dup
            ldc "Could not determine Type for property ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* uniquePropertyName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "] on entity ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            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;
        10: .line 1580
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 1584
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 4 /* propertyIndex */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyType:(I)Lorg/hibernate/type/Type;
            astore 5 /* propertyType */
        start local 5 // org.hibernate.type.Type propertyType
        12: .line 1587
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
        13: .line 1588
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        14: .line 1589
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
        15: .line 1590
            aload 0 /* this */
            aload 2 /* uniquePropertyName */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateIdByUniqueKeySelectString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
        16: .line 1587
            astore 6 /* ps */
        start local 6 // java.sql.PreparedStatement ps
        17: .line 1592
            aload 5 /* propertyType */
            aload 6 /* ps */
            aload 1 /* key */
            iconst_1
            aload 3 /* session */
            invokeinterface org.hibernate.type.Type.nullSafeSet:(Ljava/sql/PreparedStatement;Ljava/lang/Object;ILorg/hibernate/engine/spi/SessionImplementor;)V
        18: .line 1593
            aload 3 /* 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 6 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.ResultSetReturn.extract:(Ljava/sql/PreparedStatement;)Ljava/sql/ResultSet;
            astore 7 /* rs */
        start local 7 // java.sql.ResultSet rs
        19: .line 1596
            aload 7 /* rs */
            invokeinterface java.sql.ResultSet.next:()Z
            ifne 23
        20: .line 1602
            aload 3 /* 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 7 /* rs */
            aload 6 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        21: .line 1606
            aload 3 /* 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 6 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        22: .line 1597
            aconst_null
            areturn
        23: .line 1599
      StackMap locals: org.hibernate.type.Type java.sql.PreparedStatement java.sql.ResultSet
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            aload 7 /* rs */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierAliases:()[Ljava/lang/String;
            aload 3 /* session */
            aconst_null
            invokeinterface org.hibernate.type.Type.nullSafeGet:(Ljava/sql/ResultSet;[Ljava/lang/String;Lorg/hibernate/engine/spi/SessionImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.io.Serializable
            astore 9
        24: .line 1602
            aload 3 /* 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 7 /* rs */
            aload 6 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        25: .line 1606
            aload 3 /* 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 6 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        26: .line 1599
            aload 9
            areturn
        27: .line 1601
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        28: .line 1602
            aload 3 /* 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 7 /* rs */
            aload 6 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        29: .line 1603
            aload 8
            athrow
        end local 7 // java.sql.ResultSet rs
        30: .line 1605
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.String org.hibernate.engine.spi.SessionImplementor int org.hibernate.type.Type java.sql.PreparedStatement
      StackMap stack: java.lang.Throwable
            astore 10
        31: .line 1606
            aload 3 /* 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 6 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        32: .line 1607
            aload 10
            athrow
        end local 6 // java.sql.PreparedStatement ps
        33: .line 1609
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.String org.hibernate.engine.spi.SessionImplementor int org.hibernate.type.Type
      StackMap stack: java.sql.SQLException
            astore 6 /* e */
        start local 6 // java.sql.SQLException e
        34: .line 1610
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSQLExceptionHelper:()Lorg/hibernate/engine/jdbc/spi/SqlExceptionHelper;
        35: .line 1611
            aload 6 /* e */
        36: .line 1613
            ldc "could not resolve unique property [%s] to identifier for entity [%s]"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        37: .line 1614
            aload 2 /* uniquePropertyName */
            aastore
            dup
            iconst_1
        38: .line 1615
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            aastore
        39: .line 1612
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        40: .line 1617
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSQLSnapshotSelectString:()Ljava/lang/String;
        41: .line 1610
            invokevirtual org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert:(Ljava/sql/SQLException;Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/JDBCException;
            athrow
        end local 6 // java.sql.SQLException e
        end local 5 // org.hibernate.type.Type propertyType
        end local 4 // int propertyIndex
        end local 3 // org.hibernate.engine.spi.SessionImplementor session
        end local 2 // java.lang.String uniquePropertyName
        end local 1 // java.io.Serializable key
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   42     0                this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   42     1                 key  Ljava/io/Serializable;
            0   42     2  uniquePropertyName  Ljava/lang/String;
            0   42     3             session  Lorg/hibernate/engine/spi/SessionImplementor;
            7   42     4       propertyIndex  I
           12   42     5        propertyType  Lorg/hibernate/type/Type;
           17   33     6                  ps  Ljava/sql/PreparedStatement;
           19   30     7                  rs  Ljava/sql/ResultSet;
           34   42     6                   e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          19    20      27  any
          23    24      27  any
          17    21      30  any
          23    25      30  any
          27    30      30  any
          12    22      33  Class java.sql.SQLException
          23    26      33  Class java.sql.SQLException
          27    33      33  Class java.sql.SQLException
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                    Name  Flags
      key                 
      uniquePropertyName  
      session             

  protected java.lang.String generateIdByUniqueKeySelectString(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=14, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String uniquePropertyName
         0: .line 1624
            new org.hibernate.sql.Select
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokespecial org.hibernate.sql.Select.<init>:(Lorg/hibernate/dialect/Dialect;)V
            astore 2 /* select */
        start local 2 // org.hibernate.sql.Select select
         1: .line 1626
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.isCommentsEnabled:()Z
            ifeq 3
         2: .line 1627
            aload 2 /* select */
            new java.lang.StringBuilder
            dup
            ldc "resolve id by unique property ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* uniquePropertyName */
            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.Select.setComment:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
            pop
         3: .line 1630
      StackMap locals: org.hibernate.sql.Select
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootAlias:()Ljava/lang/String;
            astore 3 /* rooAlias */
        start local 3 // java.lang.String rooAlias
         4: .line 1632
            aload 2 /* select */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            aload 3 /* rooAlias */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.fromTableFragment:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            aload 3 /* rooAlias */
            iconst_1
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.fromJoinFragment:(Ljava/lang/String;ZZ)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Select.setFromClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
            pop
         5: .line 1634
            new org.hibernate.sql.SelectFragment
            dup
            invokespecial org.hibernate.sql.SelectFragment.<init>:()V
            astore 4 /* selectFragment */
        start local 4 // org.hibernate.sql.SelectFragment selectFragment
         6: .line 1635
            aload 4 /* selectFragment */
            aload 3 /* rooAlias */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnNames:()[Ljava/lang/String;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierAliases:()[Ljava/lang/String;
            invokevirtual org.hibernate.sql.SelectFragment.addColumns:(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Lorg/hibernate/sql/SelectFragment;
            pop
         7: .line 1636
            aload 2 /* select */
            aload 4 /* selectFragment */
            invokevirtual org.hibernate.sql.Select.setSelectClause:(Lorg/hibernate/sql/SelectFragment;)Lorg/hibernate/sql/Select;
            pop
         8: .line 1638
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 5 /* whereClauseBuffer */
        start local 5 // java.lang.StringBuilder whereClauseBuffer
         9: .line 1639
            aload 0 /* this */
            aload 1 /* uniquePropertyName */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyIndex:(Ljava/lang/String;)I
            istore 6 /* uniquePropertyIndex */
        start local 6 // int uniquePropertyIndex
        10: .line 1641
            aload 3 /* rooAlias */
        11: .line 1642
            aload 0 /* this */
            iload 6 /* uniquePropertyIndex */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyTableNumber:(I)I
        12: .line 1640
            invokestatic org.hibernate.persister.entity.AbstractEntityPersister.generateTableAlias:(Ljava/lang/String;I)Ljava/lang/String;
            astore 7 /* uniquePropertyTableAlias */
        start local 7 // java.lang.String uniquePropertyTableAlias
        13: .line 1644
            ldc ""
            astore 8 /* sep */
        start local 8 // java.lang.String sep
        14: .line 1645
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyColumnReaderTemplateClosure:()[[Ljava/lang/String;
            iload 6 /* uniquePropertyIndex */
            aaload
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 22
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String org.hibernate.sql.Select java.lang.String org.hibernate.sql.SelectFragment java.lang.StringBuilder int java.lang.String java.lang.String top int int java.lang.String[]
      StackMap stack:
        15: aload 12
            iload 10
            aaload
            astore 9 /* columnTemplate */
        start local 9 // java.lang.String columnTemplate
        16: .line 1646
            aload 9 /* columnTemplate */
            ifnonnull 18
        17: .line 1647
            goto 21
        18: .line 1649
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String org.hibernate.sql.Select java.lang.String org.hibernate.sql.SelectFragment java.lang.StringBuilder int java.lang.String java.lang.String java.lang.String int int java.lang.String[]
      StackMap stack:
            aload 9 /* columnTemplate */
            ldc "$PlaceHolder$"
            aload 7 /* uniquePropertyTableAlias */
            invokestatic org.hibernate.internal.util.StringHelper.replace:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 13 /* columnReference */
        start local 13 // java.lang.String columnReference
        19: .line 1650
            aload 5 /* whereClauseBuffer */
            aload 8 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 13 /* columnReference */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "=?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        20: .line 1651
            ldc " and "
            astore 8 /* sep */
        end local 13 // java.lang.String columnReference
        end local 9 // java.lang.String columnTemplate
        21: .line 1645
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String org.hibernate.sql.Select java.lang.String org.hibernate.sql.SelectFragment java.lang.StringBuilder int java.lang.String java.lang.String top int int java.lang.String[]
      StackMap stack:
            iinc 10 1
      StackMap locals:
      StackMap stack:
        22: iload 10
            iload 11
            if_icmplt 15
        23: .line 1653
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyFormulaTemplateClosure:()[[Ljava/lang/String;
            iload 6 /* uniquePropertyIndex */
            aaload
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 31
      StackMap locals:
      StackMap stack:
        24: aload 12
            iload 10
            aaload
            astore 9 /* formulaTemplate */
        start local 9 // java.lang.String formulaTemplate
        25: .line 1654
            aload 9 /* formulaTemplate */
            ifnonnull 27
        26: .line 1655
            goto 30
        27: .line 1657
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String org.hibernate.sql.Select java.lang.String org.hibernate.sql.SelectFragment java.lang.StringBuilder int java.lang.String java.lang.String java.lang.String int int java.lang.String[]
      StackMap stack:
            aload 9 /* formulaTemplate */
            ldc "$PlaceHolder$"
            aload 7 /* uniquePropertyTableAlias */
            invokestatic org.hibernate.internal.util.StringHelper.replace:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 13 /* formulaReference */
        start local 13 // java.lang.String formulaReference
        28: .line 1658
            aload 5 /* whereClauseBuffer */
            aload 8 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 13 /* formulaReference */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "=?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        29: .line 1659
            ldc " and "
            astore 8 /* sep */
        end local 13 // java.lang.String formulaReference
        end local 9 // java.lang.String formulaTemplate
        30: .line 1653
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String org.hibernate.sql.Select java.lang.String org.hibernate.sql.SelectFragment java.lang.StringBuilder int java.lang.String java.lang.String top int int java.lang.String[]
      StackMap stack:
            iinc 10 1
      StackMap locals:
      StackMap stack:
        31: iload 10
            iload 11
            if_icmplt 24
        32: .line 1661
            aload 5 /* whereClauseBuffer */
            aload 0 /* this */
            aload 3 /* rooAlias */
            iconst_1
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.whereJoinFragment:(Ljava/lang/String;ZZ)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        33: .line 1663
            aload 2 /* select */
            aload 5 /* whereClauseBuffer */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Select.setWhereClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
            pop
        34: .line 1665
            aload 2 /* select */
            ldc ""
            ldc ""
            invokevirtual org.hibernate.sql.Select.setOuterJoins:(Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/Select;
            invokevirtual org.hibernate.sql.Select.toStatementString:()Ljava/lang/String;
            areturn
        end local 8 // java.lang.String sep
        end local 7 // java.lang.String uniquePropertyTableAlias
        end local 6 // int uniquePropertyIndex
        end local 5 // java.lang.StringBuilder whereClauseBuffer
        end local 4 // org.hibernate.sql.SelectFragment selectFragment
        end local 3 // java.lang.String rooAlias
        end local 2 // org.hibernate.sql.Select select
        end local 1 // java.lang.String uniquePropertyName
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   35     0                      this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   35     1        uniquePropertyName  Ljava/lang/String;
            1   35     2                    select  Lorg/hibernate/sql/Select;
            4   35     3                  rooAlias  Ljava/lang/String;
            6   35     4            selectFragment  Lorg/hibernate/sql/SelectFragment;
            9   35     5         whereClauseBuffer  Ljava/lang/StringBuilder;
           10   35     6       uniquePropertyIndex  I
           13   35     7  uniquePropertyTableAlias  Ljava/lang/String;
           14   35     8                       sep  Ljava/lang/String;
           16   21     9            columnTemplate  Ljava/lang/String;
           19   21    13           columnReference  Ljava/lang/String;
           25   30     9           formulaTemplate  Ljava/lang/String;
           28   30    13          formulaReference  Ljava/lang/String;
    MethodParameters:
                    Name  Flags
      uniquePropertyName  

  protected java.lang.String generateSelectVersionString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 1673
            new org.hibernate.sql.SimpleSelect
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokespecial org.hibernate.sql.SimpleSelect.<init>:(Lorg/hibernate/dialect/Dialect;)V
         1: .line 1674
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionedTableName:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.SimpleSelect.setTableName:(Ljava/lang/String;)Lorg/hibernate/sql/SimpleSelect;
         2: .line 1673
            astore 1 /* select */
        start local 1 // org.hibernate.sql.SimpleSelect select
         3: .line 1675
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifeq 6
         4: .line 1676
            aload 1 /* select */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.versionColumnName:Ljava/lang/String;
            invokevirtual org.hibernate.sql.SimpleSelect.addColumn:(Ljava/lang/String;)Lorg/hibernate/sql/SimpleSelect;
            pop
         5: .line 1677
            goto 7
         6: .line 1679
      StackMap locals: org.hibernate.sql.SimpleSelect
      StackMap stack:
            aload 1 /* select */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.rootTableKeyColumnNames:[Ljava/lang/String;
            invokevirtual org.hibernate.sql.SimpleSelect.addColumns:([Ljava/lang/String;)Lorg/hibernate/sql/SimpleSelect;
            pop
         7: .line 1681
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.isCommentsEnabled:()Z
            ifeq 9
         8: .line 1682
            aload 1 /* select */
            new java.lang.StringBuilder
            dup
            ldc "get version "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.SimpleSelect.setComment:(Ljava/lang/String;)Lorg/hibernate/sql/SimpleSelect;
            pop
         9: .line 1684
      StackMap locals:
      StackMap stack:
            aload 1 /* select */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.rootTableKeyColumnNames:[Ljava/lang/String;
            ldc "=?"
            invokevirtual org.hibernate.sql.SimpleSelect.addCondition:([Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/SimpleSelect;
            invokevirtual org.hibernate.sql.SimpleSelect.toStatementString:()Ljava/lang/String;
            areturn
        end local 1 // org.hibernate.sql.SimpleSelect select
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            3   10     1  select  Lorg/hibernate/sql/SimpleSelect;

  public boolean[] getPropertyUniqueness();
    descriptor: ()[Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 1688
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyUniqueness:[Z
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected java.lang.String generateInsertGeneratedValuesSelectString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 1692
            aload 0 /* this */
            getstatic org.hibernate.tuple.GenerationTiming.INSERT:Lorg/hibernate/tuple/GenerationTiming;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateGeneratedValuesSelectString:(Lorg/hibernate/tuple/GenerationTiming;)Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected java.lang.String generateUpdateGeneratedValuesSelectString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 1696
            aload 0 /* this */
            getstatic org.hibernate.tuple.GenerationTiming.ALWAYS:Lorg/hibernate/tuple/GenerationTiming;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateGeneratedValuesSelectString:(Lorg/hibernate/tuple/GenerationTiming;)Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  private java.lang.String generateGeneratedValuesSelectString(org.hibernate.tuple.GenerationTiming);
    descriptor: (Lorg/hibernate/tuple/GenerationTiming;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.tuple.GenerationTiming generationTimingToMatch
         0: .line 1700
            new org.hibernate.sql.Select
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokespecial org.hibernate.sql.Select.<init>:(Lorg/hibernate/dialect/Dialect;)V
            astore 2 /* select */
        start local 2 // org.hibernate.sql.Select select
         1: .line 1702
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.isCommentsEnabled:()Z
            ifeq 3
         2: .line 1703
            aload 2 /* select */
            new java.lang.StringBuilder
            dup
            ldc "get generated state "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Select.setComment:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
            pop
         3: .line 1706
      StackMap locals: org.hibernate.sql.Select
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootAlias:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnNames:()[Ljava/lang/String;
            invokestatic org.hibernate.internal.util.StringHelper.qualify:(Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
            astore 3 /* aliasedIdColumns */
        start local 3 // java.lang.String[] aliasedIdColumns
         4: .line 1711
            aload 0 /* this */
         5: .line 1712
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootAlias:()Ljava/lang/String;
         6: .line 1713
            new org.hibernate.persister.entity.AbstractEntityPersister$1
            dup
            aload 0 /* this */
            aload 1 /* generationTimingToMatch */
            invokespecial org.hibernate.persister.entity.AbstractEntityPersister$1.<init>:(Lorg/hibernate/persister/entity/AbstractEntityPersister;Lorg/hibernate/tuple/GenerationTiming;)V
         7: .line 1711
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.concretePropertySelectFragment:(Ljava/lang/String;Lorg/hibernate/persister/entity/AbstractEntityPersister$InclusionChecker;)Ljava/lang/String;
            astore 4 /* selectClause */
        start local 4 // java.lang.String selectClause
         8: .line 1723
            aload 4 /* selectClause */
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 4 /* selectClause */
         9: .line 1725
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootAlias:()Ljava/lang/String;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.fromTableFragment:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        10: .line 1726
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootAlias:()Ljava/lang/String;
            iconst_1
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.fromJoinFragment:(Ljava/lang/String;ZZ)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 1725
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* fromClause */
        start local 5 // java.lang.String fromClause
        12: .line 1728
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
        13: .line 1729
            ldc "=? and "
            aload 3 /* aliasedIdColumns */
            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;
        14: .line 1730
            ldc "=?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 1731
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootAlias:()Ljava/lang/String;
            iconst_1
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.whereJoinFragment:(Ljava/lang/String;ZZ)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        16: .line 1732
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        17: .line 1728
            astore 6 /* whereClause */
        start local 6 // java.lang.String whereClause
        18: .line 1734
            aload 2 /* select */
            aload 4 /* selectClause */
            invokevirtual org.hibernate.sql.Select.setSelectClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
        19: .line 1735
            aload 5 /* fromClause */
            invokevirtual org.hibernate.sql.Select.setFromClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
        20: .line 1736
            ldc ""
            ldc ""
            invokevirtual org.hibernate.sql.Select.setOuterJoins:(Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/Select;
        21: .line 1737
            aload 6 /* whereClause */
            invokevirtual org.hibernate.sql.Select.setWhereClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
        22: .line 1738
            invokevirtual org.hibernate.sql.Select.toStatementString:()Ljava/lang/String;
        23: .line 1734
            areturn
        end local 6 // java.lang.String whereClause
        end local 5 // java.lang.String fromClause
        end local 4 // java.lang.String selectClause
        end local 3 // java.lang.String[] aliasedIdColumns
        end local 2 // org.hibernate.sql.Select select
        end local 1 // org.hibernate.tuple.GenerationTiming generationTimingToMatch
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   24     0                     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   24     1  generationTimingToMatch  Lorg/hibernate/tuple/GenerationTiming;
            1   24     2                   select  Lorg/hibernate/sql/Select;
            4   24     3         aliasedIdColumns  [Ljava/lang/String;
            8   24     4             selectClause  Ljava/lang/String;
           12   24     5               fromClause  Ljava/lang/String;
           18   24     6              whereClause  Ljava/lang/String;
    MethodParameters:
                         Name  Flags
      generationTimingToMatch  final

  protected java.lang.String concretePropertySelectFragment(java.lang.String, boolean[]);
    descriptor: (Ljava/lang/String;[Z)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String alias
        start local 2 // boolean[] includeProperty
         0: .line 1746
            aload 0 /* this */
         1: .line 1747
            aload 1 /* alias */
         2: .line 1748
            new org.hibernate.persister.entity.AbstractEntityPersister$2
            dup
            aload 0 /* this */
            aload 2 /* includeProperty */
            invokespecial org.hibernate.persister.entity.AbstractEntityPersister$2.<init>:(Lorg/hibernate/persister/entity/AbstractEntityPersister;[Z)V
         3: .line 1746
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.concretePropertySelectFragment:(Ljava/lang/String;Lorg/hibernate/persister/entity/AbstractEntityPersister$InclusionChecker;)Ljava/lang/String;
            areturn
        end local 2 // boolean[] includeProperty
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    4     1            alias  Ljava/lang/String;
            0    4     2  includeProperty  [Z
    MethodParameters:
                 Name  Flags
      alias            
      includeProperty  final

  protected java.lang.String concretePropertySelectFragment(java.lang.String, org.hibernate.persister.entity.AbstractEntityPersister$InclusionChecker);
    descriptor: (Ljava/lang/String;Lorg/hibernate/persister/entity/AbstractEntityPersister$InclusionChecker;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String alias
        start local 2 // org.hibernate.persister.entity.AbstractEntityPersister$InclusionChecker inclusionChecker
         0: .line 1757
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyNames:()[Ljava/lang/String;
            arraylength
            istore 3 /* propertyCount */
        start local 3 // int propertyCount
         1: .line 1758
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyTableNumbersInSelect:()[I
            astore 4 /* propertyTableNumbers */
        start local 4 // int[] propertyTableNumbers
         2: .line 1759
            new org.hibernate.sql.SelectFragment
            dup
            invokespecial org.hibernate.sql.SelectFragment.<init>:()V
            astore 5 /* frag */
        start local 5 // org.hibernate.sql.SelectFragment frag
         3: .line 1760
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         4: goto 17
         5: .line 1761
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String org.hibernate.persister.entity.AbstractEntityPersister$InclusionChecker int int[] org.hibernate.sql.SelectFragment int
      StackMap stack:
            aload 2 /* inclusionChecker */
            iload 6 /* i */
            invokeinterface org.hibernate.persister.entity.AbstractEntityPersister$InclusionChecker.includeProperty:(I)Z
            ifeq 16
         6: .line 1762
            aload 5 /* frag */
         7: .line 1763
            aload 1 /* alias */
            aload 4 /* propertyTableNumbers */
            iload 6 /* i */
            iaload
            invokestatic org.hibernate.persister.entity.AbstractEntityPersister.generateTableAlias:(Ljava/lang/String;I)Ljava/lang/String;
         8: .line 1764
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnReaderTemplates:[[Ljava/lang/String;
            iload 6 /* i */
            aaload
         9: .line 1765
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnAliases:[[Ljava/lang/String;
            iload 6 /* i */
            aaload
        10: .line 1762
            invokevirtual org.hibernate.sql.SelectFragment.addColumnTemplates:(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Lorg/hibernate/sql/SelectFragment;
            pop
        11: .line 1767
            aload 5 /* frag */
        12: .line 1768
            aload 1 /* alias */
            aload 4 /* propertyTableNumbers */
            iload 6 /* i */
            iaload
            invokestatic org.hibernate.persister.entity.AbstractEntityPersister.generateTableAlias:(Ljava/lang/String;I)Ljava/lang/String;
        13: .line 1769
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnFormulaTemplates:[[Ljava/lang/String;
            iload 6 /* i */
            aaload
        14: .line 1770
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnAliases:[[Ljava/lang/String;
            iload 6 /* i */
            aaload
        15: .line 1767
            invokevirtual org.hibernate.sql.SelectFragment.addFormulas:(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Lorg/hibernate/sql/SelectFragment;
            pop
        16: .line 1760
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 6 /* i */
            iload 3 /* propertyCount */
            if_icmplt 5
        end local 6 // int i
        18: .line 1774
            aload 5 /* frag */
            invokevirtual org.hibernate.sql.SelectFragment.toFragmentString:()Ljava/lang/String;
            areturn
        end local 5 // org.hibernate.sql.SelectFragment frag
        end local 4 // int[] propertyTableNumbers
        end local 3 // int propertyCount
        end local 2 // org.hibernate.persister.entity.AbstractEntityPersister$InclusionChecker inclusionChecker
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   19     0                  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   19     1                 alias  Ljava/lang/String;
            0   19     2      inclusionChecker  Lorg/hibernate/persister/entity/AbstractEntityPersister$InclusionChecker;
            1   19     3         propertyCount  I
            2   19     4  propertyTableNumbers  [I
            3   19     5                  frag  Lorg/hibernate/sql/SelectFragment;
            4   18     6                     i  I
    MethodParameters:
                  Name  Flags
      alias             
      inclusionChecker  

  protected java.lang.String generateSnapshotSelectString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 1781
            new org.hibernate.sql.Select
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokespecial org.hibernate.sql.Select.<init>:(Lorg/hibernate/dialect/Dialect;)V
            astore 1 /* select */
        start local 1 // org.hibernate.sql.Select select
         1: .line 1783
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.isCommentsEnabled:()Z
            ifeq 3
         2: .line 1784
            aload 1 /* select */
            new java.lang.StringBuilder
            dup
            ldc "get current state "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Select.setComment:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
            pop
         3: .line 1787
      StackMap locals: org.hibernate.sql.Select
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootAlias:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnNames:()[Ljava/lang/String;
            invokestatic org.hibernate.internal.util.StringHelper.qualify:(Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
            astore 2 /* aliasedIdColumns */
        start local 2 // java.lang.String[] aliasedIdColumns
         4: .line 1788
            new java.lang.StringBuilder
            dup
            ldc ", "
            aload 2 /* aliasedIdColumns */
            invokestatic org.hibernate.internal.util.StringHelper.join:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 1789
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootAlias:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyUpdateability:()[Z
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.concretePropertySelectFragment:(Ljava/lang/String;[Z)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 1788
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* selectClause */
        start local 3 // java.lang.String selectClause
         7: .line 1791
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootAlias:()Ljava/lang/String;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.fromTableFragment:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         8: .line 1792
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootAlias:()Ljava/lang/String;
            iconst_1
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.fromJoinFragment:(Ljava/lang/String;ZZ)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 1791
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* fromClause */
        start local 4 // java.lang.String fromClause
        10: .line 1794
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
        11: .line 1795
            ldc "=? and "
        12: .line 1796
            aload 2 /* aliasedIdColumns */
        13: .line 1795
            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;
        14: .line 1797
            ldc "=?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 1798
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootAlias:()Ljava/lang/String;
            iconst_1
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.whereJoinFragment:(Ljava/lang/String;ZZ)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        16: .line 1799
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        17: .line 1794
            astore 5 /* whereClause */
        start local 5 // java.lang.String whereClause
        18: .line 1807
            aload 1 /* select */
            aload 3 /* selectClause */
            invokevirtual org.hibernate.sql.Select.setSelectClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
        19: .line 1808
            aload 4 /* fromClause */
            invokevirtual org.hibernate.sql.Select.setFromClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
        20: .line 1809
            ldc ""
            ldc ""
            invokevirtual org.hibernate.sql.Select.setOuterJoins:(Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/Select;
        21: .line 1810
            aload 5 /* whereClause */
            invokevirtual org.hibernate.sql.Select.setWhereClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
        22: .line 1811
            invokevirtual org.hibernate.sql.Select.toStatementString:()Ljava/lang/String;
        23: .line 1807
            areturn
        end local 5 // java.lang.String whereClause
        end local 4 // java.lang.String fromClause
        end local 3 // java.lang.String selectClause
        end local 2 // java.lang.String[] aliasedIdColumns
        end local 1 // org.hibernate.sql.Select select
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   24     0              this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            1   24     1            select  Lorg/hibernate/sql/Select;
            4   24     2  aliasedIdColumns  [Ljava/lang/String;
            7   24     3      selectClause  Ljava/lang/String;
           10   24     4        fromClause  Ljava/lang/String;
           18   24     5       whereClause  Ljava/lang/String;

  public java.lang.Object forceVersionIncrement(java.io.Serializable, java.lang.Object, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/io/Serializable;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=4
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.io.Serializable id
        start local 2 // java.lang.Object currentVersion
        start local 3 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 1815
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifne 2
         1: .line 1816
            new org.hibernate.AssertionFailure
            dup
            ldc "cannot force version increment on non-versioned entity"
            invokespecial org.hibernate.AssertionFailure.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1819
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersionPropertyGenerated:()Z
            ifeq 4
         3: .line 1822
            new org.hibernate.HibernateException
            dup
            ldc "LockMode.FORCE is currently not supported for generated version properties"
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1825
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionType:()Lorg/hibernate/type/VersionType;
            aload 2 /* currentVersion */
            aload 3 /* session */
            invokeinterface org.hibernate.type.VersionType.next:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/lang/Object;
            astore 4 /* nextVersion */
        start local 4 // java.lang.Object nextVersion
         5: .line 1826
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 9
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            new java.lang.StringBuilder
            dup
            ldc "Forcing version increment ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            aload 1 /* id */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "; "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 1827
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionType:()Lorg/hibernate/type/VersionType;
            aload 2 /* currentVersion */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.type.VersionType.toLoggableString:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " -> "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 1828
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionType:()Lorg/hibernate/type/VersionType;
            aload 4 /* nextVersion */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.type.VersionType.toLoggableString:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            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;
         8: .line 1826
            invokeinterface org.hibernate.internal.CoreMessageLogger.trace:(Ljava/lang/Object;)V
         9: .line 1831
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateVersionIncrementUpdateString:()Ljava/lang/String;
            astore 5 /* versionIncrementString */
        start local 5 // java.lang.String versionIncrementString
        10: .line 1832
            aconst_null
            astore 6 /* st */
        start local 6 // java.sql.PreparedStatement st
        11: .line 1834
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
        12: .line 1835
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        13: .line 1836
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
        14: .line 1837
            aload 5 /* versionIncrementString */
            iconst_0
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;Z)Ljava/sql/PreparedStatement;
        15: .line 1834
            astore 6 /* st */
        16: .line 1839
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionType:()Lorg/hibernate/type/VersionType;
            aload 6 /* st */
            aload 4 /* nextVersion */
            iconst_1
            aload 3 /* session */
            invokeinterface org.hibernate.type.VersionType.nullSafeSet:(Ljava/sql/PreparedStatement;Ljava/lang/Object;ILorg/hibernate/engine/spi/SessionImplementor;)V
        17: .line 1840
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            aload 6 /* st */
            aload 1 /* id */
            iconst_2
            aload 3 /* session */
            invokeinterface org.hibernate.type.Type.nullSafeSet:(Ljava/sql/PreparedStatement;Ljava/lang/Object;ILorg/hibernate/engine/spi/SessionImplementor;)V
        18: .line 1841
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionType:()Lorg/hibernate/type/VersionType;
            aload 6 /* st */
            aload 2 /* currentVersion */
            iconst_2
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnSpan:()I
            iadd
            aload 3 /* session */
            invokeinterface org.hibernate.type.VersionType.nullSafeSet:(Ljava/sql/PreparedStatement;Ljava/lang/Object;ILorg/hibernate/engine/spi/SessionImplementor;)V
        19: .line 1842
            aload 3 /* 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 6 /* st */
            invokeinterface org.hibernate.engine.jdbc.spi.ResultSetReturn.executeUpdate:(Ljava/sql/PreparedStatement;)I
            istore 7 /* rows */
        start local 7 // int rows
        20: .line 1843
            iload 7 /* rows */
            iconst_1
            if_icmpeq 25
        21: .line 1844
            new org.hibernate.StaleObjectStateException
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            aload 1 /* id */
            invokespecial org.hibernate.StaleObjectStateException.<init>:(Ljava/lang/String;Ljava/io/Serializable;)V
            athrow
        end local 7 // int rows
        22: .line 1847
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object org.hibernate.engine.spi.SessionImplementor java.lang.Object java.lang.String java.sql.PreparedStatement
      StackMap stack: java.lang.Throwable
            astore 8
        23: .line 1848
            aload 3 /* 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 6 /* st */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        24: .line 1849
            aload 8
            athrow
        25: .line 1848
      StackMap locals:
      StackMap stack:
            aload 3 /* 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 6 /* st */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        26: .line 1850
            goto 35
        27: .line 1851
      StackMap locals:
      StackMap stack: java.sql.SQLException
            astore 7 /* sqle */
        start local 7 // java.sql.SQLException sqle
        28: .line 1852
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSQLExceptionHelper:()Lorg/hibernate/engine/jdbc/spi/SqlExceptionHelper;
        29: .line 1853
            aload 7 /* sqle */
        30: .line 1854
            new java.lang.StringBuilder
            dup
            ldc "could not retrieve version: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        31: .line 1855
            aload 0 /* this */
            aload 1 /* id */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        32: .line 1854
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        33: .line 1856
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionSelectString:()Ljava/lang/String;
        34: .line 1852
            invokevirtual org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert:(Ljava/sql/SQLException;Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/JDBCException;
            athrow
        end local 7 // java.sql.SQLException sqle
        35: .line 1860
      StackMap locals:
      StackMap stack:
            aload 4 /* nextVersion */
            areturn
        end local 6 // java.sql.PreparedStatement st
        end local 5 // java.lang.String versionIncrementString
        end local 4 // java.lang.Object nextVersion
        end local 3 // org.hibernate.engine.spi.SessionImplementor session
        end local 2 // java.lang.Object currentVersion
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   36     0                    this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   36     1                      id  Ljava/io/Serializable;
            0   36     2          currentVersion  Ljava/lang/Object;
            0   36     3                 session  Lorg/hibernate/engine/spi/SessionImplementor;
            5   36     4             nextVersion  Ljava/lang/Object;
           10   36     5  versionIncrementString  Ljava/lang/String;
           11   36     6                      st  Ljava/sql/PreparedStatement;
           20   22     7                    rows  I
           28   35     7                    sqle  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          16    22      22  any
          11    26      27  Class java.sql.SQLException
    MethodParameters:
                Name  Flags
      id              
      currentVersion  
      session         

  private java.lang.String generateVersionIncrementUpdateString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 1864
            new org.hibernate.sql.Update
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()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
            astore 1 /* update */
        start local 1 // org.hibernate.sql.Update update
         1: .line 1865
            aload 1 /* update */
            aload 0 /* this */
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableName:(I)Ljava/lang/String;
            invokevirtual org.hibernate.sql.Update.setTableName:(Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
         2: .line 1866
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.isCommentsEnabled:()Z
            ifeq 4
         3: .line 1867
            aload 1 /* update */
            ldc "forced version increment"
            invokevirtual org.hibernate.sql.Update.setComment:(Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
         4: .line 1869
      StackMap locals: org.hibernate.sql.Update
      StackMap stack:
            aload 1 /* update */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionColumnName:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Update.addColumn:(Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
         5: .line 1870
            aload 1 /* update */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnNames:()[Ljava/lang/String;
            invokevirtual org.hibernate.sql.Update.addPrimaryKeyColumns:([Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
         6: .line 1871
            aload 1 /* update */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionColumnName:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Update.setVersionColumnName:(Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
         7: .line 1872
            aload 1 /* update */
            invokevirtual org.hibernate.sql.Update.toStatementString:()Ljava/lang/String;
            areturn
        end local 1 // org.hibernate.sql.Update update
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            1    8     1  update  Lorg/hibernate/sql/Update;

  public java.lang.Object getCurrentVersion(java.io.Serializable, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/io/Serializable;Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.io.Serializable id
        start local 2 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 1880
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 2
         1: .line 1881
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Getting version: {0}"
            aload 0 /* this */
            aload 1 /* id */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracev:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 1885
      StackMap locals:
      StackMap stack:
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
         3: .line 1886
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
         4: .line 1887
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
         5: .line 1888
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionSelectString:()Ljava/lang/String;
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
         6: .line 1885
            astore 3 /* st */
        start local 3 // java.sql.PreparedStatement st
         7: .line 1890
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            aload 3 /* st */
            aload 1 /* id */
            iconst_1
            aload 2 /* session */
            invokeinterface org.hibernate.type.Type.nullSafeSet:(Ljava/sql/PreparedStatement;Ljava/lang/Object;ILorg/hibernate/engine/spi/SessionImplementor;)V
         8: .line 1891
            aload 2 /* 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 /* st */
            invokeinterface org.hibernate.engine.jdbc.spi.ResultSetReturn.extract:(Ljava/sql/PreparedStatement;)Ljava/sql/ResultSet;
            astore 4 /* rs */
        start local 4 // java.sql.ResultSet rs
         9: .line 1893
            aload 4 /* rs */
            invokeinterface java.sql.ResultSet.next:()Z
            ifne 13
        10: .line 1902
            aload 2 /* 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 4 /* rs */
            aload 3 /* st */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        11: .line 1906
            aload 2 /* 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 /* st */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        12: .line 1894
            aconst_null
            areturn
        13: .line 1896
      StackMap locals: java.sql.PreparedStatement java.sql.ResultSet
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifne 18
        14: .line 1897
            aload 0 /* this */
            astore 6
        15: .line 1902
            aload 2 /* 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 4 /* rs */
            aload 3 /* st */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        16: .line 1906
            aload 2 /* 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 /* st */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        17: .line 1897
            aload 6
            areturn
        18: .line 1899
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionType:()Lorg/hibernate/type/VersionType;
            aload 4 /* rs */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionColumnName:()Ljava/lang/String;
            aload 2 /* session */
            aconst_null
            invokeinterface org.hibernate.type.VersionType.nullSafeGet:(Ljava/sql/ResultSet;Ljava/lang/String;Lorg/hibernate/engine/spi/SessionImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            astore 6
        19: .line 1902
            aload 2 /* 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 4 /* rs */
            aload 3 /* st */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        20: .line 1906
            aload 2 /* 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 /* st */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        21: .line 1899
            aload 6
            areturn
        22: .line 1901
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        23: .line 1902
            aload 2 /* 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 4 /* rs */
            aload 3 /* st */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        24: .line 1903
            aload 5
            athrow
        end local 4 // java.sql.ResultSet rs
        25: .line 1905
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable org.hibernate.engine.spi.SessionImplementor java.sql.PreparedStatement
      StackMap stack: java.lang.Throwable
            astore 7
        26: .line 1906
            aload 2 /* 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 /* st */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        27: .line 1907
            aload 7
            athrow
        end local 3 // java.sql.PreparedStatement st
        28: .line 1909
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable org.hibernate.engine.spi.SessionImplementor
      StackMap stack: java.sql.SQLException
            astore 3 /* e */
        start local 3 // java.sql.SQLException e
        29: .line 1910
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSQLExceptionHelper:()Lorg/hibernate/engine/jdbc/spi/SqlExceptionHelper;
        30: .line 1911
            aload 3 /* e */
        31: .line 1912
            new java.lang.StringBuilder
            dup
            ldc "could not retrieve version: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            aload 1 /* id */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        32: .line 1913
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionSelectString:()Ljava/lang/String;
        33: .line 1910
            invokevirtual org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert:(Ljava/sql/SQLException;Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/JDBCException;
            athrow
        end local 3 // java.sql.SQLException e
        end local 2 // org.hibernate.engine.spi.SessionImplementor session
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   34     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   34     1       id  Ljava/io/Serializable;
            0   34     2  session  Lorg/hibernate/engine/spi/SessionImplementor;
            7   28     3       st  Ljava/sql/PreparedStatement;
            9   25     4       rs  Ljava/sql/ResultSet;
           29   34     3        e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           9    10      22  any
          13    15      22  any
          18    19      22  any
           7    11      25  any
          13    16      25  any
          18    20      25  any
          22    25      25  any
           2    12      28  Class java.sql.SQLException
          13    17      28  Class java.sql.SQLException
          18    21      28  Class java.sql.SQLException
          22    28      28  Class java.sql.SQLException
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
         Name  Flags
      id       
      session  

  protected void initLockers();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 1919
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lockers:Ljava/util/Map;
            getstatic org.hibernate.LockMode.READ:Lorg/hibernate/LockMode;
            aload 0 /* this */
            getstatic org.hibernate.LockMode.READ:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateLocker:(Lorg/hibernate/LockMode;)Lorg/hibernate/dialect/lock/LockingStrategy;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 1920
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lockers:Ljava/util/Map;
            getstatic org.hibernate.LockMode.UPGRADE:Lorg/hibernate/LockMode;
            aload 0 /* this */
            getstatic org.hibernate.LockMode.UPGRADE:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateLocker:(Lorg/hibernate/LockMode;)Lorg/hibernate/dialect/lock/LockingStrategy;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 1921
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lockers:Ljava/util/Map;
            getstatic org.hibernate.LockMode.UPGRADE_NOWAIT:Lorg/hibernate/LockMode;
            aload 0 /* this */
            getstatic org.hibernate.LockMode.UPGRADE_NOWAIT:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateLocker:(Lorg/hibernate/LockMode;)Lorg/hibernate/dialect/lock/LockingStrategy;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 1922
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lockers:Ljava/util/Map;
            getstatic org.hibernate.LockMode.UPGRADE_SKIPLOCKED:Lorg/hibernate/LockMode;
            aload 0 /* this */
            getstatic org.hibernate.LockMode.UPGRADE_SKIPLOCKED:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateLocker:(Lorg/hibernate/LockMode;)Lorg/hibernate/dialect/lock/LockingStrategy;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 1923
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lockers:Ljava/util/Map;
            getstatic org.hibernate.LockMode.FORCE:Lorg/hibernate/LockMode;
            aload 0 /* this */
            getstatic org.hibernate.LockMode.FORCE:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateLocker:(Lorg/hibernate/LockMode;)Lorg/hibernate/dialect/lock/LockingStrategy;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 1924
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lockers:Ljava/util/Map;
            getstatic org.hibernate.LockMode.PESSIMISTIC_READ:Lorg/hibernate/LockMode;
            aload 0 /* this */
            getstatic org.hibernate.LockMode.PESSIMISTIC_READ:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateLocker:(Lorg/hibernate/LockMode;)Lorg/hibernate/dialect/lock/LockingStrategy;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 1925
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lockers:Ljava/util/Map;
            getstatic org.hibernate.LockMode.PESSIMISTIC_WRITE:Lorg/hibernate/LockMode;
            aload 0 /* this */
            getstatic org.hibernate.LockMode.PESSIMISTIC_WRITE:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateLocker:(Lorg/hibernate/LockMode;)Lorg/hibernate/dialect/lock/LockingStrategy;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 1926
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lockers:Ljava/util/Map;
            getstatic org.hibernate.LockMode.PESSIMISTIC_FORCE_INCREMENT:Lorg/hibernate/LockMode;
            aload 0 /* this */
            getstatic org.hibernate.LockMode.PESSIMISTIC_FORCE_INCREMENT:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateLocker:(Lorg/hibernate/LockMode;)Lorg/hibernate/dialect/lock/LockingStrategy;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 1927
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lockers:Ljava/util/Map;
            getstatic org.hibernate.LockMode.OPTIMISTIC:Lorg/hibernate/LockMode;
            aload 0 /* this */
            getstatic org.hibernate.LockMode.OPTIMISTIC:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateLocker:(Lorg/hibernate/LockMode;)Lorg/hibernate/dialect/lock/LockingStrategy;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 1928
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lockers:Ljava/util/Map;
            getstatic org.hibernate.LockMode.OPTIMISTIC_FORCE_INCREMENT:Lorg/hibernate/LockMode;
            aload 0 /* this */
            getstatic org.hibernate.LockMode.OPTIMISTIC_FORCE_INCREMENT:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateLocker:(Lorg/hibernate/LockMode;)Lorg/hibernate/dialect/lock/LockingStrategy;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 1929
            return
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected org.hibernate.dialect.lock.LockingStrategy generateLocker(org.hibernate.LockMode);
    descriptor: (Lorg/hibernate/LockMode;)Lorg/hibernate/dialect/lock/LockingStrategy;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.LockMode lockMode
         0: .line 1932
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            aload 0 /* this */
            aload 1 /* lockMode */
            invokevirtual org.hibernate.dialect.Dialect.getLockingStrategy:(Lorg/hibernate/persister/entity/Lockable;Lorg/hibernate/LockMode;)Lorg/hibernate/dialect/lock/LockingStrategy;
            areturn
        end local 1 // org.hibernate.LockMode lockMode
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  lockMode  Lorg/hibernate/LockMode;
    MethodParameters:
          Name  Flags
      lockMode  

  private org.hibernate.dialect.lock.LockingStrategy getLocker(org.hibernate.LockMode);
    descriptor: (Lorg/hibernate/LockMode;)Lorg/hibernate/dialect/lock/LockingStrategy;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.LockMode lockMode
         0: .line 1936
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lockers:Ljava/util/Map;
            aload 1 /* lockMode */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.dialect.lock.LockingStrategy
            areturn
        end local 1 // org.hibernate.LockMode lockMode
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  lockMode  Lorg/hibernate/LockMode;
    MethodParameters:
          Name  Flags
      lockMode  

  public void lock(java.io.Serializable, java.lang.Object, java.lang.Object, org.hibernate.LockMode, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/io/Serializable;Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/LockMode;Lorg/hibernate/engine/spi/SessionImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.io.Serializable id
        start local 2 // java.lang.Object version
        start local 3 // java.lang.Object object
        start local 4 // org.hibernate.LockMode lockMode
        start local 5 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 1945
            aload 0 /* this */
            aload 4 /* lockMode */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getLocker:(Lorg/hibernate/LockMode;)Lorg/hibernate/dialect/lock/LockingStrategy;
            aload 1 /* id */
            aload 2 /* version */
            aload 3 /* object */
            iconst_m1
            aload 5 /* session */
            invokeinterface org.hibernate.dialect.lock.LockingStrategy.lock:(Ljava/io/Serializable;Ljava/lang/Object;Ljava/lang/Object;ILorg/hibernate/engine/spi/SessionImplementor;)V
         1: .line 1946
            return
        end local 5 // org.hibernate.engine.spi.SessionImplementor session
        end local 4 // org.hibernate.LockMode lockMode
        end local 3 // java.lang.Object object
        end local 2 // java.lang.Object version
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    2     1        id  Ljava/io/Serializable;
            0    2     2   version  Ljava/lang/Object;
            0    2     3    object  Ljava/lang/Object;
            0    2     4  lockMode  Lorg/hibernate/LockMode;
            0    2     5   session  Lorg/hibernate/engine/spi/SessionImplementor;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
          Name  Flags
      id        
      version   
      object    
      lockMode  
      session   

  public void lock(java.io.Serializable, java.lang.Object, java.lang.Object, org.hibernate.LockOptions, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/io/Serializable;Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/LockOptions;Lorg/hibernate/engine/spi/SessionImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.io.Serializable id
        start local 2 // java.lang.Object version
        start local 3 // java.lang.Object object
        start local 4 // org.hibernate.LockOptions lockOptions
        start local 5 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 1954
            aload 0 /* this */
            aload 4 /* lockOptions */
            invokevirtual org.hibernate.LockOptions.getLockMode:()Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getLocker:(Lorg/hibernate/LockMode;)Lorg/hibernate/dialect/lock/LockingStrategy;
            aload 1 /* id */
            aload 2 /* version */
            aload 3 /* object */
            aload 4 /* lockOptions */
            invokevirtual org.hibernate.LockOptions.getTimeOut:()I
            aload 5 /* session */
            invokeinterface org.hibernate.dialect.lock.LockingStrategy.lock:(Ljava/io/Serializable;Ljava/lang/Object;Ljava/lang/Object;ILorg/hibernate/engine/spi/SessionImplementor;)V
         1: .line 1955
            return
        end local 5 // org.hibernate.engine.spi.SessionImplementor session
        end local 4 // org.hibernate.LockOptions lockOptions
        end local 3 // java.lang.Object object
        end local 2 // java.lang.Object version
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    2     1           id  Ljava/io/Serializable;
            0    2     2      version  Ljava/lang/Object;
            0    2     3       object  Ljava/lang/Object;
            0    2     4  lockOptions  Lorg/hibernate/LockOptions;
            0    2     5      session  Lorg/hibernate/engine/spi/SessionImplementor;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
             Name  Flags
      id           
      version      
      object       
      lockOptions  
      session      

  public java.lang.String getRootTableName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 1958
            aload 0 /* this */
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassTableName:(I)Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.String getRootTableAlias(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String drivingAlias
         0: .line 1962
            aload 1 /* drivingAlias */
            areturn
        end local 1 // java.lang.String drivingAlias
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  drivingAlias  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      drivingAlias  

  public java.lang.String[] getRootTableIdentifierColumnNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 1966
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootTableKeyColumnNames:()[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.String[] toColumns(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String alias
        start local 2 // java.lang.String propertyName
         0: .line 1970
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyMapping:Lorg/hibernate/persister/entity/BasicEntityPropertyMapping;
            aload 1 /* alias */
            aload 2 /* propertyName */
            invokevirtual org.hibernate.persister.entity.BasicEntityPropertyMapping.toColumns:(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
            areturn
        end local 2 // java.lang.String propertyName
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1         alias  Ljava/lang/String;
            0    1     2  propertyName  Ljava/lang/String;
    Exceptions:
      throws org.hibernate.QueryException
    MethodParameters:
              Name  Flags
      alias         
      propertyName  

  public java.lang.String[] toColumns(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String propertyName
         0: .line 1974
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyMapping:Lorg/hibernate/persister/entity/BasicEntityPropertyMapping;
            aload 1 /* propertyName */
            invokevirtual org.hibernate.persister.entity.BasicEntityPropertyMapping.getColumnNames:(Ljava/lang/String;)[Ljava/lang/String;
            areturn
        end local 1 // java.lang.String propertyName
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  propertyName  Ljava/lang/String;
    Exceptions:
      throws org.hibernate.QueryException
    MethodParameters:
              Name  Flags
      propertyName  

  public org.hibernate.type.Type toType(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/type/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String propertyName
         0: .line 1978
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyMapping:Lorg/hibernate/persister/entity/BasicEntityPropertyMapping;
            aload 1 /* propertyName */
            invokevirtual org.hibernate.persister.entity.BasicEntityPropertyMapping.toType:(Ljava/lang/String;)Lorg/hibernate/type/Type;
            areturn
        end local 1 // java.lang.String propertyName
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  propertyName  Ljava/lang/String;
    Exceptions:
      throws org.hibernate.QueryException
    MethodParameters:
              Name  Flags
      propertyName  

  public java.lang.String[] getPropertyColumnNames(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String propertyName
         0: .line 1982
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyMapping:Lorg/hibernate/persister/entity/BasicEntityPropertyMapping;
            aload 1 /* propertyName */
            invokevirtual org.hibernate.persister.entity.BasicEntityPropertyMapping.getColumnNames:(Ljava/lang/String;)[Ljava/lang/String;
            areturn
        end local 1 // java.lang.String propertyName
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  propertyName  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      propertyName  

  public int getSubclassPropertyTableNumber(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String propertyPath
         0: .line 1994
            aload 1 /* propertyPath */
            invokestatic org.hibernate.internal.util.StringHelper.root:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* rootPropertyName */
        start local 2 // java.lang.String rootPropertyName
         1: .line 1995
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyMapping:Lorg/hibernate/persister/entity/BasicEntityPropertyMapping;
            aload 2 /* rootPropertyName */
            invokevirtual org.hibernate.persister.entity.BasicEntityPropertyMapping.toType:(Ljava/lang/String;)Lorg/hibernate/type/Type;
            astore 3 /* type */
        start local 3 // org.hibernate.type.Type type
         2: .line 1996
            aload 3 /* type */
            invokeinterface org.hibernate.type.Type.isAssociationType:()Z
            ifeq 8
         3: .line 1997
            aload 3 /* type */
            checkcast org.hibernate.type.AssociationType
            astore 4 /* assocType */
        start local 4 // org.hibernate.type.AssociationType assocType
         4: .line 1998
            aload 4 /* assocType */
            invokeinterface org.hibernate.type.AssociationType.useLHSPrimaryKey:()Z
            ifeq 6
         5: .line 2000
            iconst_0
            ireturn
         6: .line 2002
      StackMap locals: java.lang.String org.hibernate.type.Type org.hibernate.type.AssociationType
      StackMap stack:
            aload 3 /* type */
            invokeinterface org.hibernate.type.Type.isCollectionType:()Z
            ifeq 8
         7: .line 2004
            aload 4 /* assocType */
            invokeinterface org.hibernate.type.AssociationType.getLHSPropertyName:()Ljava/lang/String;
            astore 2 /* rootPropertyName */
        end local 4 // org.hibernate.type.AssociationType assocType
         8: .line 2015
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyNameClosure:()[Ljava/lang/String;
            aload 2 /* rootPropertyName */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.indexOf:([Ljava/lang/Object;Ljava/lang/Object;)I
            istore 4 /* index */
        start local 4 // int index
         9: .line 2016
            iload 4 /* index */
            iconst_m1
            if_icmpne 10
            iconst_0
            goto 11
      StackMap locals: int
      StackMap stack:
        10: aload 0 /* this */
            iload 4 /* index */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyTableNumber:(I)I
      StackMap locals:
      StackMap stack: int
        11: ireturn
        end local 4 // int index
        end local 3 // org.hibernate.type.Type type
        end local 2 // java.lang.String rootPropertyName
        end local 1 // java.lang.String propertyPath
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   12     0              this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   12     1      propertyPath  Ljava/lang/String;
            1   12     2  rootPropertyName  Ljava/lang/String;
            2   12     3              type  Lorg/hibernate/type/Type;
            4    8     4         assocType  Lorg/hibernate/type/AssociationType;
            9   12     4             index  I
    MethodParameters:
              Name  Flags
      propertyPath  

  public org.hibernate.persister.entity.Queryable$Declarer getSubclassPropertyDeclarer(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/persister/entity/Queryable$Declarer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String propertyPath
         0: .line 2020
            aload 0 /* this */
            aload 1 /* propertyPath */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyTableNumber:(Ljava/lang/String;)I
            istore 2 /* tableIndex */
        start local 2 // int tableIndex
         1: .line 2021
            iload 2 /* tableIndex */
            ifne 3
         2: .line 2022
            getstatic org.hibernate.persister.entity.Queryable$Declarer.CLASS:Lorg/hibernate/persister/entity/Queryable$Declarer;
            areturn
         3: .line 2024
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 2 /* tableIndex */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isClassOrSuperclassTable:(I)Z
            ifeq 5
         4: .line 2025
            getstatic org.hibernate.persister.entity.Queryable$Declarer.SUPERCLASS:Lorg/hibernate/persister/entity/Queryable$Declarer;
            areturn
         5: .line 2028
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.persister.entity.Queryable$Declarer.SUBCLASS:Lorg/hibernate/persister/entity/Queryable$Declarer;
            areturn
        end local 2 // int tableIndex
        end local 1 // java.lang.String propertyPath
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    6     1  propertyPath  Ljava/lang/String;
            1    6     2    tableIndex  I
    MethodParameters:
              Name  Flags
      propertyPath  

  public org.hibernate.persister.entity.DiscriminatorMetadata getTypeDiscriminatorMetadata();
    descriptor: ()Lorg/hibernate/persister/entity/DiscriminatorMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 2035
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.discriminatorMetadata:Lorg/hibernate/persister/entity/DiscriminatorMetadata;
            ifnonnull 2
         1: .line 2036
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.buildTypeDiscriminatorMetadata:()Lorg/hibernate/persister/entity/DiscriminatorMetadata;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.discriminatorMetadata:Lorg/hibernate/persister/entity/DiscriminatorMetadata;
         2: .line 2038
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.discriminatorMetadata:Lorg/hibernate/persister/entity/DiscriminatorMetadata;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  private org.hibernate.persister.entity.DiscriminatorMetadata buildTypeDiscriminatorMetadata();
    descriptor: ()Lorg/hibernate/persister/entity/DiscriminatorMetadata;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 2042
            new org.hibernate.persister.entity.AbstractEntityPersister$3
            dup
            aload 0 /* this */
            invokespecial org.hibernate.persister.entity.AbstractEntityPersister$3.<init>:(Lorg/hibernate/persister/entity/AbstractEntityPersister;)V
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public static java.lang.String generateTableAlias(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.String rootAlias
        start local 1 // int tableNumber
         0: .line 2054
            iload 1 /* tableNumber */
            ifne 2
         1: .line 2055
            aload 0 /* rootAlias */
            areturn
         2: .line 2057
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* rootAlias */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            astore 2 /* buf */
        start local 2 // java.lang.StringBuilder buf
         3: .line 2058
            aload 0 /* rootAlias */
            ldc "_"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 5
         4: .line 2059
            aload 2 /* buf */
            bipush 95
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         5: .line 2061
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 2 /* buf */
            iload 1 /* tableNumber */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            bipush 95
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder buf
        end local 1 // int tableNumber
        end local 0 // java.lang.String rootAlias
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0    rootAlias  Ljava/lang/String;
            0    6     1  tableNumber  I
            3    6     2          buf  Ljava/lang/StringBuilder;
    MethodParameters:
             Name  Flags
      rootAlias    
      tableNumber  

  public java.lang.String[] toColumns(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String name
        start local 2 // int i
         0: .line 2065
            aload 1 /* name */
            aload 0 /* this */
            iload 2 /* i */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyTableNumber:(I)I
            invokestatic org.hibernate.persister.entity.AbstractEntityPersister.generateTableAlias:(Ljava/lang/String;I)Ljava/lang/String;
            astore 3 /* alias */
        start local 3 // java.lang.String alias
         1: .line 2066
            aload 0 /* this */
            iload 2 /* i */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyColumnNames:(I)[Ljava/lang/String;
            astore 4 /* cols */
        start local 4 // java.lang.String[] cols
         2: .line 2067
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyFormulaTemplateClosure:()[[Ljava/lang/String;
            iload 2 /* i */
            aaload
            astore 5 /* templates */
        start local 5 // java.lang.String[] templates
         3: .line 2068
            aload 4 /* cols */
            arraylength
            anewarray java.lang.String
            astore 6 /* result */
        start local 6 // java.lang.String[] result
         4: .line 2069
            iconst_0
            istore 7 /* j */
        start local 7 // int j
         5: goto 11
         6: .line 2070
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String int java.lang.String java.lang.String[] java.lang.String[] java.lang.String[] int
      StackMap stack:
            aload 4 /* cols */
            iload 7 /* j */
            aaload
            ifnonnull 9
         7: .line 2071
            aload 6 /* result */
            iload 7 /* j */
            aload 5 /* templates */
            iload 7 /* j */
            aaload
            ldc "$PlaceHolder$"
            aload 3 /* alias */
            invokestatic org.hibernate.internal.util.StringHelper.replace:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            aastore
         8: .line 2072
            goto 10
         9: .line 2074
      StackMap locals:
      StackMap stack:
            aload 6 /* result */
            iload 7 /* j */
            aload 3 /* alias */
            aload 4 /* cols */
            iload 7 /* j */
            aaload
            invokestatic org.hibernate.internal.util.StringHelper.qualify:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            aastore
        10: .line 2069
      StackMap locals:
      StackMap stack:
            iinc 7 /* j */ 1
      StackMap locals:
      StackMap stack:
        11: iload 7 /* j */
            aload 4 /* cols */
            arraylength
            if_icmplt 6
        end local 7 // int j
        12: .line 2077
            aload 6 /* result */
            areturn
        end local 6 // java.lang.String[] result
        end local 5 // java.lang.String[] templates
        end local 4 // java.lang.String[] cols
        end local 3 // java.lang.String alias
        end local 2 // int i
        end local 1 // java.lang.String name
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0       this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   13     1       name  Ljava/lang/String;
            0   13     2          i  I
            1   13     3      alias  Ljava/lang/String;
            2   13     4       cols  [Ljava/lang/String;
            3   13     5  templates  [Ljava/lang/String;
            4   13     6     result  [Ljava/lang/String;
            5   12     7          j  I
    MethodParameters:
      Name  Flags
      name  
      i     final

  private int getSubclassPropertyIndex(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String propertyName
         0: .line 2081
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyNameClosure:[Ljava/lang/String;
            aload 1 /* propertyName */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.indexOf:([Ljava/lang/Object;Ljava/lang/Object;)I
            ireturn
        end local 1 // java.lang.String propertyName
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  propertyName  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      propertyName  

  protected java.lang.String[] getPropertySubclassNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 2085
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertySubclassNames:[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.String[] getPropertyColumnNames(int);
    descriptor: (I)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int i
         0: .line 2089
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnNames:[[Ljava/lang/String;
            iload 1 /* i */
            aaload
            areturn
        end local 1 // int i
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1     i  I
    MethodParameters:
      Name  Flags
      i     

  public java.lang.String[] getPropertyColumnWriters(int);
    descriptor: (I)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int i
         0: .line 2093
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnWriters:[[Ljava/lang/String;
            iload 1 /* i */
            aaload
            areturn
        end local 1 // int i
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1     i  I
    MethodParameters:
      Name  Flags
      i     

  protected int getPropertyColumnSpan(int);
    descriptor: (I)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int i
         0: .line 2097
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnSpans:[I
            iload 1 /* i */
            iaload
            ireturn
        end local 1 // int i
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1     i  I
    MethodParameters:
      Name  Flags
      i     

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

  public org.hibernate.FetchMode getFetchMode(int);
    descriptor: (I)Lorg/hibernate/FetchMode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int i
         0: .line 2105
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyFetchModeClosure:[Lorg/hibernate/FetchMode;
            iload 1 /* i */
            aaload
            areturn
        end local 1 // int i
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1     i  I
    MethodParameters:
      Name  Flags
      i     

  public org.hibernate.engine.spi.CascadeStyle getCascadeStyle(int);
    descriptor: (I)Lorg/hibernate/engine/spi/CascadeStyle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int i
         0: .line 2109
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyCascadeStyleClosure:[Lorg/hibernate/engine/spi/CascadeStyle;
            iload 1 /* i */
            aaload
            areturn
        end local 1 // int i
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1     i  I
    MethodParameters:
      Name  Flags
      i     

  public org.hibernate.type.Type getSubclassPropertyType(int);
    descriptor: (I)Lorg/hibernate/type/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int i
         0: .line 2113
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyTypeClosure:[Lorg/hibernate/type/Type;
            iload 1 /* i */
            aaload
            areturn
        end local 1 // int i
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1     i  I
    MethodParameters:
      Name  Flags
      i     

  public java.lang.String getSubclassPropertyName(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int i
         0: .line 2117
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyNameClosure:[Ljava/lang/String;
            iload 1 /* i */
            aaload
            areturn
        end local 1 // int i
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1     i  I
    MethodParameters:
      Name  Flags
      i     

  public int countSubclassProperties();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 2121
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyTypeClosure:[Lorg/hibernate/type/Type;
            arraylength
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.String[] getSubclassPropertyColumnNames(int);
    descriptor: (I)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int i
         0: .line 2125
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNameClosure:[[Ljava/lang/String;
            iload 1 /* i */
            aaload
            areturn
        end local 1 // int i
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1     i  I
    MethodParameters:
      Name  Flags
      i     

  public boolean isDefinedOnSubclass(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int i
         0: .line 2129
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyDefinedOnSubclass:[Z
            iload 1 /* i */
            baload
            ireturn
        end local 1 // int i
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1     i  I
    MethodParameters:
      Name  Flags
      i     

  public java.lang.String[][] getSubclassPropertyFormulaTemplateClosure();
    descriptor: ()[[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 2134
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyFormulaTemplateClosure:[[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected org.hibernate.type.Type[] getSubclassPropertyTypeClosure();
    descriptor: ()[Lorg/hibernate/type/Type;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 2138
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyTypeClosure:[Lorg/hibernate/type/Type;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected java.lang.String[][] getSubclassPropertyColumnNameClosure();
    descriptor: ()[[Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 2142
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNameClosure:[[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.String[][] getSubclassPropertyColumnReaderClosure();
    descriptor: ()[[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 2146
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnReaderClosure:[[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.String[][] getSubclassPropertyColumnReaderTemplateClosure();
    descriptor: ()[[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 2150
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnReaderTemplateClosure:[[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected java.lang.String[] getSubclassPropertyNameClosure();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 2154
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyNameClosure:[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public int[] resolveAttributeIndexes(java.util.Set<java.lang.String>);
    descriptor: (Ljava/util/Set;)[I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.util.Set properties
         0: .line 2159
            aload 1 /* properties */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 2 /* iter */
        start local 2 // java.util.Iterator iter
         1: .line 2160
            aload 1 /* properties */
            invokeinterface java.util.Set.size:()I
            newarray 10
            astore 3 /* fields */
        start local 3 // int[] fields
         2: .line 2161
            iconst_0
            istore 4 /* counter */
        start local 4 // int counter
         3: .line 2162
            goto 7
         4: .line 2163
      StackMap locals: java.util.Iterator int[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            aload 2 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertyIndexOrNull:(Ljava/lang/String;)Ljava/lang/Integer;
            astore 5 /* index */
        start local 5 // java.lang.Integer index
         5: .line 2164
            aload 5 /* index */
            ifnull 7
         6: .line 2165
            aload 3 /* fields */
            iload 4 /* counter */
            iinc 4 /* counter */ 1
            aload 5 /* index */
            invokevirtual java.lang.Integer.intValue:()I
            iastore
        end local 5 // java.lang.Integer index
         7: .line 2162
      StackMap locals:
      StackMap stack:
            aload 2 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         8: .line 2167
            aload 3 /* fields */
            areturn
        end local 4 // int counter
        end local 3 // int[] fields
        end local 2 // java.util.Iterator iter
        end local 1 // java.util.Set properties
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    9     1  properties  Ljava/util/Set<Ljava/lang/String;>;
            1    9     2        iter  Ljava/util/Iterator<Ljava/lang/String;>;
            2    9     3      fields  [I
            3    9     4     counter  I
            5    7     5       index  Ljava/lang/Integer;
    Signature: (Ljava/util/Set<Ljava/lang/String;>;)[I
    MethodParameters:
            Name  Flags
      properties  

  protected java.lang.String[] getSubclassPropertySubclassNameClosure();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 2171
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertySubclassNameClosure:[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected java.lang.String[] getSubclassColumnClosure();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 2175
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassColumnClosure:[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected java.lang.String[] getSubclassColumnAliasClosure();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 2179
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassColumnAliasClosure:[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.String[] getSubclassColumnReaderTemplateClosure();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 2183
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassColumnReaderTemplateClosure:[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected java.lang.String[] getSubclassFormulaClosure();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 2187
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassFormulaClosure:[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected java.lang.String[] getSubclassFormulaTemplateClosure();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 2191
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassFormulaTemplateClosure:[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected java.lang.String[] getSubclassFormulaAliasClosure();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 2195
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassFormulaAliasClosure:[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.String[] getSubclassPropertyColumnAliases(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String propertyName
        start local 2 // java.lang.String suffix
         0: .line 2199
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyAliases:Ljava/util/Map;
            aload 1 /* propertyName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String[]
            astore 3 /* rawAliases */
        start local 3 // java.lang.String[] rawAliases
         1: .line 2201
            aload 3 /* rawAliases */
            ifnonnull 3
         2: .line 2202
            aconst_null
            areturn
         3: .line 2205
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 3 /* rawAliases */
            arraylength
            anewarray java.lang.String
            astore 4 /* result */
        start local 4 // java.lang.String[] result
         4: .line 2206
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         5: goto 8
         6: .line 2207
      StackMap locals: java.lang.String[] int
      StackMap stack:
            aload 4 /* result */
            iload 5 /* i */
            new org.hibernate.sql.Alias
            dup
            aload 2 /* suffix */
            invokespecial org.hibernate.sql.Alias.<init>:(Ljava/lang/String;)V
            aload 3 /* rawAliases */
            iload 5 /* i */
            aaload
            invokevirtual org.hibernate.sql.Alias.toUnquotedAliasString:(Ljava/lang/String;)Ljava/lang/String;
            aastore
         7: .line 2206
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 5 /* i */
            aload 3 /* rawAliases */
            arraylength
            if_icmplt 6
        end local 5 // int i
         9: .line 2209
            aload 4 /* result */
            areturn
        end local 4 // java.lang.String[] result
        end local 3 // java.lang.String[] rawAliases
        end local 2 // java.lang.String suffix
        end local 1 // java.lang.String propertyName
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   10     1  propertyName  Ljava/lang/String;
            0   10     2        suffix  Ljava/lang/String;
            1   10     3    rawAliases  [Ljava/lang/String;
            4   10     4        result  [Ljava/lang/String;
            5    9     5             i  I
    MethodParameters:
              Name  Flags
      propertyName  
      suffix        

  public java.lang.String[] getSubclassPropertyColumnNames(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String propertyName
         0: .line 2214
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNames:Ljava/util/Map;
            aload 1 /* propertyName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 1 // java.lang.String propertyName
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  propertyName  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      propertyName  

  protected void initSubclassPropertyAliasesMap(org.hibernate.mapping.PersistentClass);
    descriptor: (Lorg/hibernate/mapping/PersistentClass;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=7, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.mapping.PersistentClass model
         0: .line 2226
            aload 0 /* this */
            aconst_null
            aload 1 /* model */
            invokevirtual org.hibernate.mapping.PersistentClass.getSubclassPropertyClosureIterator:()Ljava/util/Iterator;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.internalInitSubclassPropertyAliasesMap:(Ljava/lang/String;Ljava/util/Iterator;)V
         1: .line 2229
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.hasNonIdentifierPropertyNamedId:()Z
            ifne 4
         2: .line 2230
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyAliases:Ljava/util/Map;
            ldc "id"
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierAliases:()[Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 2231
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNames:Ljava/util/Map;
            ldc "id"
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnNames:()[Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 2235
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasIdentifierProperty:()Z
            ifeq 7
         5: .line 2236
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyAliases:Ljava/util/Map;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierPropertyName:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierAliases:()[Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 2237
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNames:Ljava/util/Map;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierPropertyName:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnNames:()[Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 2241
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            invokeinterface org.hibernate.type.Type.isComponentType:()Z
            ifeq 37
         8: .line 2243
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            checkcast org.hibernate.type.CompositeType
            astore 2 /* componentId */
        start local 2 // org.hibernate.type.CompositeType componentId
         9: .line 2244
            aload 2 /* componentId */
            invokeinterface org.hibernate.type.CompositeType.getPropertyNames:()[Ljava/lang/String;
            astore 3 /* idPropertyNames */
        start local 3 // java.lang.String[] idPropertyNames
        10: .line 2245
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierAliases:()[Ljava/lang/String;
            astore 4 /* idAliases */
        start local 4 // java.lang.String[] idAliases
        11: .line 2246
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnNames:()[Ljava/lang/String;
            astore 5 /* idColumnNames */
        start local 5 // java.lang.String[] idColumnNames
        12: .line 2248
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        13: goto 36
        14: .line 2249
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass org.hibernate.type.CompositeType java.lang.String[] java.lang.String[] java.lang.String[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.hasNonIdentifierPropertyNamedId:()Z
            ifeq 23
        15: .line 2250
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyAliases:Ljava/util/Map;
        16: .line 2251
            new java.lang.StringBuilder
            dup
            ldc "id."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* idPropertyNames */
            iload 6 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        17: .line 2252
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 4 /* idAliases */
            iload 6 /* i */
            aaload
            aastore
        18: .line 2250
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        19: .line 2254
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNames:Ljava/util/Map;
        20: .line 2255
            new java.lang.StringBuilder
            dup
            ldc "id."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierPropertyName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* idPropertyNames */
            iload 6 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        21: .line 2256
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 5 /* idColumnNames */
            iload 6 /* i */
            aaload
            aastore
        22: .line 2254
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        23: .line 2260
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasIdentifierProperty:()Z
            ifeq 33
        24: .line 2261
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyAliases:Ljava/util/Map;
        25: .line 2262
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierPropertyName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* idPropertyNames */
            iload 6 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        26: .line 2263
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 4 /* idAliases */
            iload 6 /* i */
            aaload
            aastore
        27: .line 2261
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        28: .line 2265
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNames:Ljava/util/Map;
        29: .line 2266
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierPropertyName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* idPropertyNames */
            iload 6 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        30: .line 2267
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 5 /* idColumnNames */
            iload 6 /* i */
            aaload
            aastore
        31: .line 2265
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        32: .line 2269
            goto 35
        33: .line 2272
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyAliases:Ljava/util/Map;
            aload 3 /* idPropertyNames */
            iload 6 /* i */
            aaload
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 4 /* idAliases */
            iload 6 /* i */
            aaload
            aastore
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        34: .line 2273
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNames:Ljava/util/Map;
            aload 3 /* idPropertyNames */
            iload 6 /* i */
            aaload
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 5 /* idColumnNames */
            iload 6 /* i */
            aaload
            aastore
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        35: .line 2248
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        36: iload 6 /* i */
            aload 3 /* idPropertyNames */
            arraylength
            if_icmplt 14
        end local 6 // int i
        end local 5 // java.lang.String[] idColumnNames
        end local 4 // java.lang.String[] idAliases
        end local 3 // java.lang.String[] idPropertyNames
        end local 2 // org.hibernate.type.CompositeType componentId
        37: .line 2278
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.isPolymorphic:()Z
            ifeq 40
        38: .line 2279
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyAliases:Ljava/util/Map;
            ldc "class"
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getDiscriminatorAlias:()Ljava/lang/String;
            aastore
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        39: .line 2280
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNames:Ljava/util/Map;
            ldc "class"
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getDiscriminatorColumnName:()Ljava/lang/String;
            aastore
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        40: .line 2283
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.hibernate.mapping.PersistentClass model
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   41     0             this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   41     1            model  Lorg/hibernate/mapping/PersistentClass;
            9   37     2      componentId  Lorg/hibernate/type/CompositeType;
           10   37     3  idPropertyNames  [Ljava/lang/String;
           11   37     4        idAliases  [Ljava/lang/String;
           12   37     5    idColumnNames  [Ljava/lang/String;
           13   37     6                i  I
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
       Name  Flags
      model  

  protected void initSubclassPropertyAliasesMap(org.hibernate.metamodel.binding.EntityBinding);
    descriptor: (Lorg/hibernate/metamodel/binding/EntityBinding;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=7, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.metamodel.binding.EntityBinding model
         0: .line 2296
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.hasNonIdentifierPropertyNamedId:()Z
            ifne 3
         1: .line 2297
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyAliases:Ljava/util/Map;
            ldc "id"
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierAliases:()[Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 2298
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNames:Ljava/util/Map;
            ldc "id"
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnNames:()[Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 2302
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasIdentifierProperty:()Z
            ifeq 6
         4: .line 2303
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyAliases:Ljava/util/Map;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierPropertyName:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierAliases:()[Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 2304
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNames:Ljava/util/Map;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierPropertyName:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnNames:()[Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 2308
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            invokeinterface org.hibernate.type.Type.isComponentType:()Z
            ifeq 36
         7: .line 2310
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            checkcast org.hibernate.type.CompositeType
            astore 2 /* componentId */
        start local 2 // org.hibernate.type.CompositeType componentId
         8: .line 2311
            aload 2 /* componentId */
            invokeinterface org.hibernate.type.CompositeType.getPropertyNames:()[Ljava/lang/String;
            astore 3 /* idPropertyNames */
        start local 3 // java.lang.String[] idPropertyNames
         9: .line 2312
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierAliases:()[Ljava/lang/String;
            astore 4 /* idAliases */
        start local 4 // java.lang.String[] idAliases
        10: .line 2313
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnNames:()[Ljava/lang/String;
            astore 5 /* idColumnNames */
        start local 5 // java.lang.String[] idColumnNames
        11: .line 2315
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        12: goto 35
        13: .line 2316
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding org.hibernate.type.CompositeType java.lang.String[] java.lang.String[] java.lang.String[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.hasNonIdentifierPropertyNamedId:()Z
            ifeq 22
        14: .line 2317
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyAliases:Ljava/util/Map;
        15: .line 2318
            new java.lang.StringBuilder
            dup
            ldc "id."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* idPropertyNames */
            iload 6 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        16: .line 2319
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 4 /* idAliases */
            iload 6 /* i */
            aaload
            aastore
        17: .line 2317
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        18: .line 2321
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNames:Ljava/util/Map;
        19: .line 2322
            new java.lang.StringBuilder
            dup
            ldc "id."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierPropertyName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* idPropertyNames */
            iload 6 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        20: .line 2323
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 5 /* idColumnNames */
            iload 6 /* i */
            aaload
            aastore
        21: .line 2321
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        22: .line 2327
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasIdentifierProperty:()Z
            ifeq 32
        23: .line 2328
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyAliases:Ljava/util/Map;
        24: .line 2329
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierPropertyName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* idPropertyNames */
            iload 6 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        25: .line 2330
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 4 /* idAliases */
            iload 6 /* i */
            aaload
            aastore
        26: .line 2328
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        27: .line 2332
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNames:Ljava/util/Map;
        28: .line 2333
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierPropertyName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* idPropertyNames */
            iload 6 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        29: .line 2334
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 5 /* idColumnNames */
            iload 6 /* i */
            aaload
            aastore
        30: .line 2332
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        31: .line 2336
            goto 34
        32: .line 2339
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyAliases:Ljava/util/Map;
            aload 3 /* idPropertyNames */
            iload 6 /* i */
            aaload
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 4 /* idAliases */
            iload 6 /* i */
            aaload
            aastore
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        33: .line 2340
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNames:Ljava/util/Map;
            aload 3 /* idPropertyNames */
            iload 6 /* i */
            aaload
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 5 /* idColumnNames */
            iload 6 /* i */
            aaload
            aastore
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        34: .line 2315
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        35: iload 6 /* i */
            aload 3 /* idPropertyNames */
            arraylength
            if_icmplt 13
        end local 6 // int i
        end local 5 // java.lang.String[] idColumnNames
        end local 4 // java.lang.String[] idAliases
        end local 3 // java.lang.String[] idPropertyNames
        end local 2 // org.hibernate.type.CompositeType componentId
        36: .line 2345
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.metamodel.binding.EntityBinding
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.isPolymorphic:()Z
            ifeq 39
        37: .line 2346
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyAliases:Ljava/util/Map;
            ldc "class"
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getDiscriminatorAlias:()Ljava/lang/String;
            aastore
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        38: .line 2347
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNames:Ljava/util/Map;
            ldc "class"
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getDiscriminatorColumnName:()Ljava/lang/String;
            aastore
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        39: .line 2350
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.hibernate.metamodel.binding.EntityBinding model
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   40     0             this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   40     1            model  Lorg/hibernate/metamodel/binding/EntityBinding;
            8   36     2      componentId  Lorg/hibernate/type/CompositeType;
            9   36     3  idPropertyNames  [Ljava/lang/String;
           10   36     4        idAliases  [Ljava/lang/String;
           11   36     5    idColumnNames  [Ljava/lang/String;
           12   36     6                i  I
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
       Name  Flags
      model  

  private void internalInitSubclassPropertyAliasesMap(java.lang.String, java.util.Iterator);
    descriptor: (Ljava/lang/String;Ljava/util/Iterator;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String path
        start local 2 // java.util.Iterator propertyIterator
         0: .line 2353
            goto 22
         1: .line 2355
      StackMap locals:
      StackMap stack:
            aload 2 /* propertyIterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Property
            astore 3 /* prop */
        start local 3 // org.hibernate.mapping.Property prop
         2: .line 2356
            aload 1 /* path */
            ifnonnull 3
            aload 3 /* prop */
            invokevirtual org.hibernate.mapping.Property.getName:()Ljava/lang/String;
            goto 4
      StackMap locals: org.hibernate.mapping.Property
      StackMap stack:
         3: new java.lang.StringBuilder
            dup
            aload 1 /* path */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* prop */
            invokevirtual org.hibernate.mapping.Property.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         4: astore 4 /* propname */
        start local 4 // java.lang.String propname
         5: .line 2357
            aload 3 /* prop */
            invokevirtual org.hibernate.mapping.Property.isComposite:()Z
            ifeq 10
         6: .line 2358
            aload 3 /* prop */
            invokevirtual org.hibernate.mapping.Property.getValue:()Lorg/hibernate/mapping/Value;
            checkcast org.hibernate.mapping.Component
            astore 5 /* component */
        start local 5 // org.hibernate.mapping.Component component
         7: .line 2359
            aload 5 /* component */
            invokevirtual org.hibernate.mapping.Component.getPropertyIterator:()Ljava/util/Iterator;
            astore 6 /* compProps */
        start local 6 // java.util.Iterator compProps
         8: .line 2360
            aload 0 /* this */
            aload 4 /* propname */
            aload 6 /* compProps */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.internalInitSubclassPropertyAliasesMap:(Ljava/lang/String;Ljava/util/Iterator;)V
        end local 6 // java.util.Iterator compProps
        end local 5 // org.hibernate.mapping.Component component
         9: .line 2361
            goto 22
        10: .line 2363
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* prop */
            invokevirtual org.hibernate.mapping.Property.getColumnSpan:()I
            anewarray java.lang.String
            astore 5 /* aliases */
        start local 5 // java.lang.String[] aliases
        11: .line 2364
            aload 3 /* prop */
            invokevirtual org.hibernate.mapping.Property.getColumnSpan:()I
            anewarray java.lang.String
            astore 6 /* cols */
        start local 6 // java.lang.String[] cols
        12: .line 2365
            aload 3 /* prop */
            invokevirtual org.hibernate.mapping.Property.getColumnIterator:()Ljava/util/Iterator;
            astore 7 /* colIter */
        start local 7 // java.util.Iterator colIter
        13: .line 2366
            iconst_0
            istore 8 /* l */
        start local 8 // int l
        14: .line 2367
            goto 19
        15: .line 2368
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.util.Iterator org.hibernate.mapping.Property java.lang.String java.lang.String[] java.lang.String[] java.util.Iterator int
      StackMap stack:
            aload 7 /* colIter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Selectable
            astore 9 /* thing */
        start local 9 // org.hibernate.mapping.Selectable thing
        16: .line 2369
            aload 5 /* aliases */
            iload 8 /* l */
            aload 9 /* thing */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            aload 3 /* prop */
            invokevirtual org.hibernate.mapping.Property.getValue:()Lorg/hibernate/mapping/Value;
            invokeinterface org.hibernate.mapping.Value.getTable:()Lorg/hibernate/mapping/Table;
            invokeinterface org.hibernate.mapping.Selectable.getAlias:(Lorg/hibernate/dialect/Dialect;Lorg/hibernate/mapping/Table;)Ljava/lang/String;
            aastore
        17: .line 2370
            aload 6 /* cols */
            iload 8 /* l */
            aload 9 /* thing */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokeinterface org.hibernate.mapping.Selectable.getText:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            aastore
        18: .line 2371
            iinc 8 /* l */ 1
        end local 9 // org.hibernate.mapping.Selectable thing
        19: .line 2367
      StackMap locals:
      StackMap stack:
            aload 7 /* colIter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        20: .line 2374
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyAliases:Ljava/util/Map;
            aload 4 /* propname */
            aload 5 /* aliases */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        21: .line 2375
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNames:Ljava/util/Map;
            aload 4 /* propname */
            aload 6 /* cols */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // int l
        end local 7 // java.util.Iterator colIter
        end local 6 // java.lang.String[] cols
        end local 5 // java.lang.String[] aliases
        end local 4 // java.lang.String propname
        end local 3 // org.hibernate.mapping.Property prop
        22: .line 2353
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.util.Iterator
      StackMap stack:
            aload 2 /* propertyIterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        23: .line 2379
            return
        end local 2 // java.util.Iterator propertyIterator
        end local 1 // java.lang.String path
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   24     0              this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   24     1              path  Ljava/lang/String;
            0   24     2  propertyIterator  Ljava/util/Iterator;
            2   22     3              prop  Lorg/hibernate/mapping/Property;
            5   22     4          propname  Ljava/lang/String;
            7    9     5         component  Lorg/hibernate/mapping/Component;
            8    9     6         compProps  Ljava/util/Iterator;
           11   22     5           aliases  [Ljava/lang/String;
           12   22     6              cols  [Ljava/lang/String;
           13   22     7           colIter  Ljava/util/Iterator;
           14   22     8                 l  I
           16   19     9             thing  Lorg/hibernate/mapping/Selectable;
    MethodParameters:
                  Name  Flags
      path              
      propertyIterator  

  public java.lang.Object loadByUniqueKey(java.lang.String, java.lang.Object, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String propertyName
        start local 2 // java.lang.Object uniqueKey
        start local 3 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 2385
            aload 0 /* this */
            aload 1 /* propertyName */
            aload 3 /* session */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getAppropriateUniqueKeyLoader:(Ljava/lang/String;Lorg/hibernate/engine/spi/SessionImplementor;)Lorg/hibernate/loader/entity/EntityLoader;
            aload 3 /* session */
            aload 2 /* uniqueKey */
            invokevirtual org.hibernate.loader.entity.EntityLoader.loadByUniqueKey:(Lorg/hibernate/engine/spi/SessionImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 3 // org.hibernate.engine.spi.SessionImplementor session
        end local 2 // java.lang.Object uniqueKey
        end local 1 // java.lang.String propertyName
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  propertyName  Ljava/lang/String;
            0    1     2     uniqueKey  Ljava/lang/Object;
            0    1     3       session  Lorg/hibernate/engine/spi/SessionImplementor;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
              Name  Flags
      propertyName  
      uniqueKey     
      session       

  private org.hibernate.loader.entity.EntityLoader getAppropriateUniqueKeyLoader(java.lang.String, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/lang/String;Lorg/hibernate/engine/spi/SessionImplementor;)Lorg/hibernate/loader/entity/EntityLoader;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String propertyName
        start local 2 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 2389
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.hasEnabledFilters:()Z
            ifne 4
         1: .line 2390
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.hasEnabledFetchProfiles:()Z
            ifne 4
         2: .line 2391
            aload 1 /* propertyName */
            bipush 46
            invokevirtual java.lang.String.indexOf:(I)I
         3: .line 2389
            ifge 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 3 /* useStaticLoader */
        start local 3 // boolean useStaticLoader
         6: .line 2393
            iload 3 /* useStaticLoader */
            ifeq 8
         7: .line 2394
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.uniqueKeyLoaders:Ljava/util/Map;
            aload 1 /* propertyName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.loader.entity.EntityLoader
            areturn
         8: .line 2397
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
         9: .line 2398
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyMapping:Lorg/hibernate/persister/entity/BasicEntityPropertyMapping;
            aload 1 /* propertyName */
            invokevirtual org.hibernate.persister.entity.BasicEntityPropertyMapping.toType:(Ljava/lang/String;)Lorg/hibernate/type/Type;
        10: .line 2399
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyMapping:Lorg/hibernate/persister/entity/BasicEntityPropertyMapping;
            aload 1 /* propertyName */
            invokevirtual org.hibernate.persister.entity.BasicEntityPropertyMapping.toColumns:(Ljava/lang/String;)[Ljava/lang/String;
        11: .line 2400
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
        12: .line 2397
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createUniqueKeyLoader:(Lorg/hibernate/type/Type;[Ljava/lang/String;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)Lorg/hibernate/loader/entity/EntityLoader;
            areturn
        end local 3 // boolean useStaticLoader
        end local 2 // org.hibernate.engine.spi.SessionImplementor session
        end local 1 // java.lang.String propertyName
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0             this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   13     1     propertyName  Ljava/lang/String;
            0   13     2          session  Lorg/hibernate/engine/spi/SessionImplementor;
            6   13     3  useStaticLoader  Z
    MethodParameters:
              Name  Flags
      propertyName  
      session       

  public int getPropertyIndex(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String propertyName
         0: .line 2406
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            aload 1 /* propertyName */
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertyIndex:(Ljava/lang/String;)I
            ireturn
        end local 1 // java.lang.String propertyName
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  propertyName  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      propertyName  

  protected void createUniqueKeyLoaders();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 2410
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyTypes:()[Lorg/hibernate/type/Type;
            astore 1 /* propertyTypes */
        start local 1 // org.hibernate.type.Type[] propertyTypes
         1: .line 2411
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyNames:()[Ljava/lang/String;
            astore 2 /* propertyNames */
        start local 2 // java.lang.String[] propertyNames
         2: .line 2412
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 14
         4: .line 2413
      StackMap locals: org.hibernate.type.Type[] java.lang.String[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyUniqueness:[Z
            iload 3 /* i */
            baload
            ifeq 13
         5: .line 2415
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.uniqueKeyLoaders:Ljava/util/Map;
         6: .line 2416
            aload 2 /* propertyNames */
            iload 3 /* i */
            aaload
         7: .line 2417
            aload 0 /* this */
         8: .line 2418
            aload 1 /* propertyTypes */
            iload 3 /* i */
            aaload
         9: .line 2419
            aload 0 /* this */
            iload 3 /* i */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyColumnNames:(I)[Ljava/lang/String;
        10: .line 2420
            getstatic org.hibernate.engine.spi.LoadQueryInfluencers.NONE:Lorg/hibernate/engine/spi/LoadQueryInfluencers;
        11: .line 2417
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createUniqueKeyLoader:(Lorg/hibernate/type/Type;[Ljava/lang/String;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)Lorg/hibernate/loader/entity/EntityLoader;
        12: .line 2415
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 2412
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 3 /* i */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertySpan:()I
            if_icmplt 4
        end local 3 // int i
        15: .line 2426
            return
        end local 2 // java.lang.String[] propertyNames
        end local 1 // org.hibernate.type.Type[] propertyTypes
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   16     0           this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            1   16     1  propertyTypes  [Lorg/hibernate/type/Type;
            2   16     2  propertyNames  [Ljava/lang/String;
            3   15     3              i  I
    Exceptions:
      throws org.hibernate.MappingException

  private org.hibernate.loader.entity.EntityLoader createUniqueKeyLoader(org.hibernate.type.Type, java.lang.String[], org.hibernate.engine.spi.LoadQueryInfluencers);
    descriptor: (Lorg/hibernate/type/Type;[Ljava/lang/String;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)Lorg/hibernate/loader/entity/EntityLoader;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=5, args_size=4
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.type.Type uniqueKeyType
        start local 2 // java.lang.String[] columns
        start local 3 // org.hibernate.engine.spi.LoadQueryInfluencers loadQueryInfluencers
         0: .line 2432
            aload 1 /* uniqueKeyType */
            invokeinterface org.hibernate.type.Type.isEntityType:()Z
            ifeq 3
         1: .line 2433
            aload 1 /* uniqueKeyType */
            checkcast org.hibernate.type.EntityType
            invokevirtual org.hibernate.type.EntityType.getAssociatedEntityName:()Ljava/lang/String;
            astore 4 /* className */
        start local 4 // java.lang.String className
         2: .line 2434
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aload 4 /* className */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getEntityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            invokeinterface org.hibernate.persister.entity.EntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            astore 1 /* uniqueKeyType */
        end local 4 // java.lang.String className
         3: .line 2436
      StackMap locals:
      StackMap stack:
            new org.hibernate.loader.entity.EntityLoader
            dup
         4: .line 2437
            aload 0 /* this */
         5: .line 2438
            aload 2 /* columns */
         6: .line 2439
            aload 1 /* uniqueKeyType */
         7: .line 2440
            iconst_1
         8: .line 2441
            getstatic org.hibernate.LockMode.NONE:Lorg/hibernate/LockMode;
         9: .line 2442
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
        10: .line 2443
            aload 3 /* loadQueryInfluencers */
        11: .line 2436
            invokespecial org.hibernate.loader.entity.EntityLoader.<init>:(Lorg/hibernate/persister/entity/OuterJoinLoadable;[Ljava/lang/String;Lorg/hibernate/type/Type;ILorg/hibernate/LockMode;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)V
            areturn
        end local 3 // org.hibernate.engine.spi.LoadQueryInfluencers loadQueryInfluencers
        end local 2 // java.lang.String[] columns
        end local 1 // org.hibernate.type.Type uniqueKeyType
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   12     0                  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   12     1         uniqueKeyType  Lorg/hibernate/type/Type;
            0   12     2               columns  [Ljava/lang/String;
            0   12     3  loadQueryInfluencers  Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            2    3     4             className  Ljava/lang/String;
    MethodParameters:
                      Name  Flags
      uniqueKeyType         
      columns               
      loadQueryInfluencers  

  protected java.lang.String getSQLWhereString(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String alias
         0: .line 2448
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlWhereStringTemplate:Ljava/lang/String;
            ldc "$PlaceHolder$"
            aload 1 /* alias */
            invokestatic org.hibernate.internal.util.StringHelper.replace:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  alias  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      alias  

  protected boolean hasWhere();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 2452
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlWhereString:Ljava/lang/String;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  private void initOrdinaryPropertyPaths(org.hibernate.engine.spi.Mapping);
    descriptor: (Lorg/hibernate/engine/spi/Mapping;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=3, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.engine.spi.Mapping mapping
         0: .line 2456
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 11
         2: .line 2457
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyMapping:Lorg/hibernate/persister/entity/BasicEntityPropertyMapping;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyNameClosure:()[Ljava/lang/String;
            iload 2 /* i */
            aaload
         3: .line 2458
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyTypeClosure:()[Lorg/hibernate/type/Type;
            iload 2 /* i */
            aaload
         4: .line 2459
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyColumnNameClosure:()[[Ljava/lang/String;
            iload 2 /* i */
            aaload
         5: .line 2460
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyColumnReaderClosure:()[[Ljava/lang/String;
            iload 2 /* i */
            aaload
         6: .line 2461
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyColumnReaderTemplateClosure:()[[Ljava/lang/String;
            iload 2 /* i */
            aaload
         7: .line 2462
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyFormulaTemplateClosure:()[[Ljava/lang/String;
            iload 2 /* i */
            aaload
         8: .line 2463
            aload 1 /* mapping */
         9: .line 2457
            invokevirtual org.hibernate.persister.entity.BasicEntityPropertyMapping.initPropertyPaths:(Ljava/lang/String;Lorg/hibernate/type/Type;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Lorg/hibernate/engine/spi/Mapping;)V
        10: .line 2456
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 2 /* i */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyNameClosure:()[Ljava/lang/String;
            arraylength
            if_icmplt 2
        end local 2 // int i
        12: .line 2465
            return
        end local 1 // org.hibernate.engine.spi.Mapping mapping
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   13     1  mapping  Lorg/hibernate/engine/spi/Mapping;
            1   12     2        i  I
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
         Name  Flags
      mapping  

  private void initIdentifierPropertyPaths(org.hibernate.engine.spi.Mapping);
    descriptor: (Lorg/hibernate/engine/spi/Mapping;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=3, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.engine.spi.Mapping mapping
         0: .line 2468
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierPropertyName:()Ljava/lang/String;
            astore 2 /* idProp */
        start local 2 // java.lang.String idProp
         1: .line 2469
            aload 2 /* idProp */
            ifnull 5
         2: .line 2470
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyMapping:Lorg/hibernate/persister/entity/BasicEntityPropertyMapping;
            aload 2 /* idProp */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnNames:()[Ljava/lang/String;
         3: .line 2471
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnReaders:()[Ljava/lang/String;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnReaderTemplates:()[Ljava/lang/String;
            aconst_null
            aload 1 /* mapping */
         4: .line 2470
            invokevirtual org.hibernate.persister.entity.BasicEntityPropertyMapping.initPropertyPaths:(Ljava/lang/String;Lorg/hibernate/type/Type;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Lorg/hibernate/engine/spi/Mapping;)V
         5: .line 2473
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getIdentifierProperty:()Lorg/hibernate/tuple/IdentifierProperty;
            invokevirtual org.hibernate.tuple.IdentifierProperty.isEmbedded:()Z
            ifeq 9
         6: .line 2474
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyMapping:Lorg/hibernate/persister/entity/BasicEntityPropertyMapping;
            aconst_null
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnNames:()[Ljava/lang/String;
         7: .line 2475
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnReaders:()[Ljava/lang/String;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnReaderTemplates:()[Ljava/lang/String;
            aconst_null
            aload 1 /* mapping */
         8: .line 2474
            invokevirtual org.hibernate.persister.entity.BasicEntityPropertyMapping.initPropertyPaths:(Ljava/lang/String;Lorg/hibernate/type/Type;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Lorg/hibernate/engine/spi/Mapping;)V
         9: .line 2477
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.hasNonIdentifierPropertyNamedId:()Z
            ifne 13
        10: .line 2478
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyMapping:Lorg/hibernate/persister/entity/BasicEntityPropertyMapping;
            ldc "id"
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnNames:()[Ljava/lang/String;
        11: .line 2479
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnReaders:()[Ljava/lang/String;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnReaderTemplates:()[Ljava/lang/String;
            aconst_null
            aload 1 /* mapping */
        12: .line 2478
            invokevirtual org.hibernate.persister.entity.BasicEntityPropertyMapping.initPropertyPaths:(Ljava/lang/String;Lorg/hibernate/type/Type;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Lorg/hibernate/engine/spi/Mapping;)V
        13: .line 2481
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String idProp
        end local 1 // org.hibernate.engine.spi.Mapping mapping
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   14     1  mapping  Lorg/hibernate/engine/spi/Mapping;
            1   14     2   idProp  Ljava/lang/String;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
         Name  Flags
      mapping  

  private void initDiscriminatorPropertyPath(org.hibernate.engine.spi.Mapping);
    descriptor: (Lorg/hibernate/engine/spi/Mapping;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.engine.spi.Mapping mapping
         0: .line 2484
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyMapping:Lorg/hibernate/persister/entity/BasicEntityPropertyMapping;
            ldc "class"
         1: .line 2485
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getDiscriminatorType:()Lorg/hibernate/type/Type;
         2: .line 2486
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getDiscriminatorColumnName:()Ljava/lang/String;
            aastore
         3: .line 2487
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getDiscriminatorColumnReaders:()Ljava/lang/String;
            aastore
         4: .line 2488
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getDiscriminatorColumnReaderTemplate:()Ljava/lang/String;
            aastore
         5: .line 2489
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getDiscriminatorFormulaTemplate:()Ljava/lang/String;
            aastore
         6: .line 2490
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
         7: .line 2484
            invokevirtual org.hibernate.persister.entity.BasicEntityPropertyMapping.initPropertyPaths:(Ljava/lang/String;Lorg/hibernate/type/Type;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Lorg/hibernate/engine/spi/Mapping;)V
         8: .line 2491
            return
        end local 1 // org.hibernate.engine.spi.Mapping mapping
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    9     1  mapping  Lorg/hibernate/engine/spi/Mapping;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
         Name  Flags
      mapping  

  protected void initPropertyPaths(org.hibernate.engine.spi.Mapping);
    descriptor: (Lorg/hibernate/engine/spi/Mapping;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.engine.spi.Mapping mapping
         0: .line 2494
            aload 0 /* this */
            aload 1 /* mapping */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.initOrdinaryPropertyPaths:(Lorg/hibernate/engine/spi/Mapping;)V
         1: .line 2495
            aload 0 /* this */
            aload 1 /* mapping */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.initOrdinaryPropertyPaths:(Lorg/hibernate/engine/spi/Mapping;)V
         2: .line 2496
            aload 0 /* this */
            aload 1 /* mapping */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.initIdentifierPropertyPaths:(Lorg/hibernate/engine/spi/Mapping;)V
         3: .line 2497
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.isPolymorphic:()Z
            ifeq 5
         4: .line 2498
            aload 0 /* this */
            aload 1 /* mapping */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.initDiscriminatorPropertyPath:(Lorg/hibernate/engine/spi/Mapping;)V
         5: .line 2500
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.hibernate.engine.spi.Mapping mapping
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    6     1  mapping  Lorg/hibernate/engine/spi/Mapping;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
         Name  Flags
      mapping  

  protected org.hibernate.loader.entity.UniqueEntityLoader createEntityLoader(org.hibernate.LockMode, org.hibernate.engine.spi.LoadQueryInfluencers);
    descriptor: (Lorg/hibernate/LockMode;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.LockMode lockMode
        start local 2 // org.hibernate.engine.spi.LoadQueryInfluencers loadQueryInfluencers
         0: .line 2506
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.loader.entity.BatchingEntityLoaderBuilder.getBuilder:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Lorg/hibernate/loader/entity/BatchingEntityLoaderBuilder;
         1: .line 2507
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.batchSize:I
            aload 1 /* lockMode */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aload 2 /* loadQueryInfluencers */
            invokevirtual org.hibernate.loader.entity.BatchingEntityLoaderBuilder.buildLoader:(Lorg/hibernate/persister/entity/OuterJoinLoadable;ILorg/hibernate/LockMode;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
         2: .line 2506
            areturn
        end local 2 // org.hibernate.engine.spi.LoadQueryInfluencers loadQueryInfluencers
        end local 1 // org.hibernate.LockMode lockMode
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    3     0                  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    3     1              lockMode  Lorg/hibernate/LockMode;
            0    3     2  loadQueryInfluencers  Lorg/hibernate/engine/spi/LoadQueryInfluencers;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
                      Name  Flags
      lockMode              
      loadQueryInfluencers  

  protected org.hibernate.loader.entity.UniqueEntityLoader createEntityLoader(org.hibernate.LockOptions, org.hibernate.engine.spi.LoadQueryInfluencers);
    descriptor: (Lorg/hibernate/LockOptions;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.LockOptions lockOptions
        start local 2 // org.hibernate.engine.spi.LoadQueryInfluencers loadQueryInfluencers
         0: .line 2514
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.loader.entity.BatchingEntityLoaderBuilder.getBuilder:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Lorg/hibernate/loader/entity/BatchingEntityLoaderBuilder;
         1: .line 2515
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.batchSize:I
            aload 1 /* lockOptions */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aload 2 /* loadQueryInfluencers */
            invokevirtual org.hibernate.loader.entity.BatchingEntityLoaderBuilder.buildLoader:(Lorg/hibernate/persister/entity/OuterJoinLoadable;ILorg/hibernate/LockOptions;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
         2: .line 2514
            areturn
        end local 2 // org.hibernate.engine.spi.LoadQueryInfluencers loadQueryInfluencers
        end local 1 // org.hibernate.LockOptions lockOptions
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    3     0                  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    3     1           lockOptions  Lorg/hibernate/LockOptions;
            0    3     2  loadQueryInfluencers  Lorg/hibernate/engine/spi/LoadQueryInfluencers;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
                      Name  Flags
      lockOptions           
      loadQueryInfluencers  

  protected org.hibernate.loader.entity.UniqueEntityLoader createEntityLoader(org.hibernate.LockMode);
    descriptor: (Lorg/hibernate/LockMode;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.LockMode lockMode
         0: .line 2528
            aload 0 /* this */
            aload 1 /* lockMode */
            getstatic org.hibernate.engine.spi.LoadQueryInfluencers.NONE:Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createEntityLoader:(Lorg/hibernate/LockMode;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
            areturn
        end local 1 // org.hibernate.LockMode lockMode
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  lockMode  Lorg/hibernate/LockMode;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
          Name  Flags
      lockMode  

  protected boolean check(int, java.io.Serializable, int, org.hibernate.jdbc.Expectation, java.sql.PreparedStatement);
    descriptor: (ILjava/io/Serializable;ILorg/hibernate/jdbc/Expectation;Ljava/sql/PreparedStatement;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int rows
        start local 2 // java.io.Serializable id
        start local 3 // int tableNumber
        start local 4 // org.hibernate.jdbc.Expectation expectation
        start local 5 // java.sql.PreparedStatement statement
         0: .line 2533
            aload 4 /* expectation */
            iload 1 /* rows */
            aload 5 /* statement */
            iconst_m1
            invokeinterface org.hibernate.jdbc.Expectation.verifyOutcome:(ILjava/sql/PreparedStatement;I)V
         1: .line 2534
            goto 17
         2: .line 2535
      StackMap locals:
      StackMap stack: org.hibernate.StaleStateException
            pop
         3: .line 2536
            aload 0 /* this */
            iload 3 /* tableNumber */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isNullableTable:(I)Z
            ifne 8
         4: .line 2537
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatistics:()Lorg/hibernate/stat/Statistics;
            invokeinterface org.hibernate.stat.Statistics.isStatisticsEnabled:()Z
            ifeq 7
         5: .line 2538
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getStatisticsImplementor:()Lorg/hibernate/stat/spi/StatisticsImplementor;
         6: .line 2539
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            invokeinterface org.hibernate.stat.spi.StatisticsImplementor.optimisticFailure:(Ljava/lang/String;)V
         7: .line 2541
      StackMap locals:
      StackMap stack:
            new org.hibernate.StaleObjectStateException
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            aload 2 /* id */
            invokespecial org.hibernate.StaleObjectStateException.<init>:(Ljava/lang/String;Ljava/io/Serializable;)V
            athrow
         8: .line 2543
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         9: .line 2545
      StackMap locals:
      StackMap stack: org.hibernate.jdbc.TooManyRowsAffectedException
            pop
        10: .line 2546
            new org.hibernate.HibernateException
            dup
        11: .line 2547
            new java.lang.StringBuilder
            dup
            ldc "Duplicate identifier in table for: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        12: .line 2548
            aload 0 /* this */
            aload 2 /* id */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 2547
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        14: .line 2546
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 2551
      StackMap locals:
      StackMap stack: java.lang.Throwable
            pop
        16: .line 2552
            iconst_0
            ireturn
        17: .line 2554
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 5 // java.sql.PreparedStatement statement
        end local 4 // org.hibernate.jdbc.Expectation expectation
        end local 3 // int tableNumber
        end local 2 // java.io.Serializable id
        end local 1 // int rows
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   18     0         this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   18     1         rows  I
            0   18     2           id  Ljava/io/Serializable;
            0   18     3  tableNumber  I
            0   18     4  expectation  Lorg/hibernate/jdbc/Expectation;
            0   18     5    statement  Ljava/sql/PreparedStatement;
      Exception table:
        from    to  target  type
           0     1       2  Class org.hibernate.StaleStateException
           0     1       9  Class org.hibernate.jdbc.TooManyRowsAffectedException
           0     1      15  Class java.lang.Throwable
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
             Name  Flags
      rows         
      id           
      tableNumber  
      expectation  
      statement    

  protected java.lang.String generateUpdateString(boolean[], int, boolean);
    descriptor: ([ZIZ)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // boolean[] includeProperty
        start local 2 // int j
        start local 3 // boolean useRowId
         0: .line 2558
            aload 0 /* this */
            aload 1 /* includeProperty */
            iload 2 /* j */
            aconst_null
            iload 3 /* useRowId */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateUpdateString:([ZI[Ljava/lang/Object;Z)Ljava/lang/String;
            areturn
        end local 3 // boolean useRowId
        end local 2 // int j
        end local 1 // boolean[] includeProperty
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  includeProperty  [Z
            0    1     2                j  I
            0    1     3         useRowId  Z
    MethodParameters:
                 Name  Flags
      includeProperty  
      j                
      useRowId         

  protected java.lang.String generateUpdateString(boolean[], int, java.lang.Object[], boolean);
    descriptor: ([ZI[Ljava/lang/Object;Z)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=16, args_size=5
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // boolean[] includeProperty
        start local 2 // int j
        start local 3 // java.lang.Object[] oldFields
        start local 4 // boolean useRowId
         0: .line 2569
            new org.hibernate.sql.Update
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()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
            aload 0 /* this */
            iload 2 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableName:(I)Ljava/lang/String;
            invokevirtual org.hibernate.sql.Update.setTableName:(Ljava/lang/String;)Lorg/hibernate/sql/Update;
            astore 5 /* update */
        start local 5 // org.hibernate.sql.Update update
         1: .line 2572
            iload 4 /* useRowId */
            ifeq 4
         2: .line 2573
            aload 5 /* update */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.rowIdName:Ljava/lang/String;
            aastore
            invokevirtual org.hibernate.sql.Update.addPrimaryKeyColumns:([Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
         3: .line 2574
            goto 5
         4: .line 2576
      StackMap locals: org.hibernate.sql.Update
      StackMap stack:
            aload 5 /* update */
            aload 0 /* this */
            iload 2 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getKeyColumns:(I)[Ljava/lang/String;
            invokevirtual org.hibernate.sql.Update.addPrimaryKeyColumns:([Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
         5: .line 2579
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* hasColumns */
        start local 6 // boolean hasColumns
         6: .line 2580
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         7: goto 17
         8: .line 2581
      StackMap locals: int int
      StackMap stack:
            aload 1 /* includeProperty */
            iload 7 /* i */
            baload
            ifeq 16
            aload 0 /* this */
            iload 7 /* i */
            iload 2 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isPropertyOfTable:(II)Z
            ifeq 16
         9: .line 2582
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lobProperties:Ljava/util/List;
            iload 7 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 16
        10: .line 2584
            aload 5 /* update */
            aload 0 /* this */
            iload 7 /* i */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyColumnNames:(I)[Ljava/lang/String;
        11: .line 2585
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnUpdateable:[[Z
            iload 7 /* i */
            aaload
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnWriters:[[Ljava/lang/String;
            iload 7 /* i */
            aaload
        12: .line 2584
            invokevirtual org.hibernate.sql.Update.addColumns:([Ljava/lang/String;[Z[Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
        13: .line 2586
            iload 6 /* hasColumns */
            ifne 14
            aload 0 /* this */
            iload 7 /* i */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyColumnSpan:(I)I
            ifgt 14
            iconst_0
            goto 15
      StackMap locals:
      StackMap stack:
        14: iconst_1
      StackMap locals:
      StackMap stack: int
        15: istore 6 /* hasColumns */
        16: .line 2580
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 7 /* i */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertySpan:()I
            if_icmplt 8
        end local 7 // int i
        18: .line 2593
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lobProperties:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 25
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister boolean[] int java.lang.Object[] int org.hibernate.sql.Update int top java.util.Iterator
      StackMap stack:
        19: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 7 /* i */
        start local 7 // int i
        20: .line 2594
            aload 1 /* includeProperty */
            iload 7 /* i */
            baload
            ifeq 25
            aload 0 /* this */
            iload 7 /* i */
            iload 2 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isPropertyOfTable:(II)Z
            ifeq 25
        21: .line 2596
            aload 5 /* update */
            aload 0 /* this */
            iload 7 /* i */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyColumnNames:(I)[Ljava/lang/String;
        22: .line 2597
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnUpdateable:[[Z
            iload 7 /* i */
            aaload
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnWriters:[[Ljava/lang/String;
            iload 7 /* i */
            aaload
        23: .line 2596
            invokevirtual org.hibernate.sql.Update.addColumns:([Ljava/lang/String;[Z[Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
        24: .line 2598
            iconst_1
            istore 6 /* hasColumns */
        end local 7 // int i
        25: .line 2593
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        26: .line 2602
            iload 2 /* j */
            ifne 31
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifeq 31
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getOptimisticLockStyle:()Lorg/hibernate/engine/OptimisticLockStyle;
            getstatic org.hibernate.engine.OptimisticLockStyle.VERSION:Lorg/hibernate/engine/OptimisticLockStyle;
            if_acmpne 31
        27: .line 2606
            aload 0 /* this */
            aload 1 /* includeProperty */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.checkVersion:([Z)Z
            ifeq 60
        28: .line 2607
            aload 5 /* update */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionColumnName:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Update.setVersionColumnName:(Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
        29: .line 2608
            iconst_1
            istore 6 /* hasColumns */
        30: .line 2610
            goto 60
        31: .line 2611
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister boolean[] int java.lang.Object[] int org.hibernate.sql.Update int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isAllOrDirtyOptLocking:()Z
            ifeq 60
            aload 3 /* oldFields */
            ifnull 60
        32: .line 2614
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getOptimisticLockStyle:()Lorg/hibernate/engine/OptimisticLockStyle;
            getstatic org.hibernate.engine.OptimisticLockStyle.ALL:Lorg/hibernate/engine/OptimisticLockStyle;
            if_acmpne 34
        33: .line 2615
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyUpdateability:()[Z
            goto 35
        34: .line 2616
      StackMap locals:
      StackMap stack:
            aload 1 /* includeProperty */
        35: .line 2614
      StackMap locals:
      StackMap stack: boolean[]
            astore 7 /* includeInWhere */
        start local 7 // boolean[] includeInWhere
        36: .line 2618
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyVersionability:()[Z
            astore 8 /* versionability */
        start local 8 // boolean[] versionability
        37: .line 2619
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyTypes:()[Lorg/hibernate/type/Type;
            astore 9 /* types */
        start local 9 // org.hibernate.type.Type[] types
        38: .line 2620
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        39: goto 59
        40: .line 2621
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister boolean[] int java.lang.Object[] int org.hibernate.sql.Update int boolean[] boolean[] org.hibernate.type.Type[] int
      StackMap stack:
            aload 7 /* includeInWhere */
            iload 10 /* i */
            baload
            ifeq 44
        41: .line 2622
            aload 0 /* this */
            iload 10 /* i */
            iload 2 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isPropertyOfTable:(II)Z
            ifeq 44
        42: .line 2623
            aload 8 /* versionability */
            iload 10 /* i */
            baload
            ifeq 44
        43: .line 2621
            iconst_1
            goto 45
      StackMap locals:
      StackMap stack:
        44: iconst_0
      StackMap locals:
      StackMap stack: int
        45: istore 11 /* include */
        start local 11 // boolean include
        46: .line 2624
            iload 11 /* include */
            ifeq 58
        47: .line 2627
            aload 0 /* this */
            iload 10 /* i */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyColumnNames:(I)[Ljava/lang/String;
            astore 12 /* propertyColumnNames */
        start local 12 // java.lang.String[] propertyColumnNames
        48: .line 2628
            aload 0 /* this */
            iload 10 /* i */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyColumnWriters:(I)[Ljava/lang/String;
            astore 13 /* propertyColumnWriters */
        start local 13 // java.lang.String[] propertyColumnWriters
        49: .line 2629
            aload 9 /* types */
            iload 10 /* i */
            aaload
            aload 3 /* oldFields */
            iload 10 /* i */
            aaload
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.type.Type.toColumnNullness:(Ljava/lang/Object;Lorg/hibernate/engine/spi/Mapping;)[Z
            astore 14 /* propertyNullness */
        start local 14 // boolean[] propertyNullness
        50: .line 2630
            iconst_0
            istore 15 /* k */
        start local 15 // int k
        51: goto 57
        52: .line 2631
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister boolean[] int java.lang.Object[] int org.hibernate.sql.Update int boolean[] boolean[] org.hibernate.type.Type[] int int java.lang.String[] java.lang.String[] boolean[] int
      StackMap stack:
            aload 14 /* propertyNullness */
            iload 15 /* k */
            baload
            ifeq 55
        53: .line 2632
            aload 5 /* update */
            aload 12 /* propertyColumnNames */
            iload 15 /* k */
            aaload
            new java.lang.StringBuilder
            dup
            ldc "="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 13 /* propertyColumnWriters */
            iload 15 /* k */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Update.addWhereColumn:(Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
        54: .line 2633
            goto 56
        55: .line 2635
      StackMap locals:
      StackMap stack:
            aload 5 /* update */
            aload 12 /* propertyColumnNames */
            iload 15 /* k */
            aaload
            ldc " is null"
            invokevirtual org.hibernate.sql.Update.addWhereColumn:(Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
        56: .line 2630
      StackMap locals:
      StackMap stack:
            iinc 15 /* k */ 1
      StackMap locals:
      StackMap stack:
        57: iload 15 /* k */
            aload 14 /* propertyNullness */
            arraylength
            if_icmplt 52
        end local 15 // int k
        end local 14 // boolean[] propertyNullness
        end local 13 // java.lang.String[] propertyColumnWriters
        end local 12 // java.lang.String[] propertyColumnNames
        end local 11 // boolean include
        58: .line 2620
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister boolean[] int java.lang.Object[] int org.hibernate.sql.Update int boolean[] boolean[] org.hibernate.type.Type[] int
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        59: iload 10 /* i */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertySpan:()I
            if_icmplt 40
        end local 10 // int i
        end local 9 // org.hibernate.type.Type[] types
        end local 8 // boolean[] versionability
        end local 7 // boolean[] includeInWhere
        60: .line 2643
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister boolean[] int java.lang.Object[] int org.hibernate.sql.Update int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.isCommentsEnabled:()Z
            ifeq 62
        61: .line 2644
            aload 5 /* update */
            new java.lang.StringBuilder
            dup
            ldc "update "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Update.setComment:(Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
        62: .line 2647
      StackMap locals:
      StackMap stack:
            iload 6 /* hasColumns */
            ifeq 63
            aload 5 /* update */
            invokevirtual org.hibernate.sql.Update.toStatementString:()Ljava/lang/String;
            goto 64
      StackMap locals:
      StackMap stack:
        63: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
        64: areturn
        end local 6 // boolean hasColumns
        end local 5 // org.hibernate.sql.Update update
        end local 4 // boolean useRowId
        end local 3 // java.lang.Object[] oldFields
        end local 2 // int j
        end local 1 // boolean[] includeProperty
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   65     0                   this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   65     1        includeProperty  [Z
            0   65     2                      j  I
            0   65     3              oldFields  [Ljava/lang/Object;
            0   65     4               useRowId  Z
            1   65     5                 update  Lorg/hibernate/sql/Update;
            6   65     6             hasColumns  Z
            7   18     7                      i  I
           20   25     7                      i  I
           36   60     7         includeInWhere  [Z
           37   60     8         versionability  [Z
           38   60     9                  types  [Lorg/hibernate/type/Type;
           39   60    10                      i  I
           46   58    11                include  Z
           48   58    12    propertyColumnNames  [Ljava/lang/String;
           49   58    13  propertyColumnWriters  [Ljava/lang/String;
           50   58    14       propertyNullness  [Z
           51   58    15                      k  I
    MethodParameters:
                 Name  Flags
      includeProperty  final
      j                final
      oldFields        final
      useRowId         final

  private boolean checkVersion(boolean[]);
    descriptor: ([Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // boolean[] includeProperty
         0: .line 2651
            aload 1 /* includeProperty */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionProperty:()I
            baload
            ifne 3
         1: .line 2652
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.isVersionGenerated:()Z
            ifne 3
         2: .line 2651
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 1 // boolean[] includeProperty
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    4     1  includeProperty  [Z
    MethodParameters:
                 Name  Flags
      includeProperty  final

  protected java.lang.String generateInsertString(boolean[], int);
    descriptor: ([ZI)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // boolean[] includeProperty
        start local 2 // int j
         0: .line 2656
            aload 0 /* this */
            iconst_0
            aload 1 /* includeProperty */
            iload 2 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateInsertString:(Z[ZI)Ljava/lang/String;
            areturn
        end local 2 // int j
        end local 1 // boolean[] includeProperty
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  includeProperty  [Z
            0    1     2                j  I
    MethodParameters:
                 Name  Flags
      includeProperty  
      j                

  protected java.lang.String generateInsertString(boolean, boolean[]);
    descriptor: (Z[Z)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // boolean identityInsert
        start local 2 // boolean[] includeProperty
         0: .line 2660
            aload 0 /* this */
            iload 1 /* identityInsert */
            aload 2 /* includeProperty */
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateInsertString:(Z[ZI)Ljava/lang/String;
            areturn
        end local 2 // boolean[] includeProperty
        end local 1 // boolean identityInsert
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1   identityInsert  Z
            0    1     2  includeProperty  [Z
    MethodParameters:
                 Name  Flags
      identityInsert   
      includeProperty  

  protected java.lang.String generateInsertString(boolean, boolean[], int);
    descriptor: (Z[ZI)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // boolean identityInsert
        start local 2 // boolean[] includeProperty
        start local 3 // int j
         0: .line 2671
            new org.hibernate.sql.Insert
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokespecial org.hibernate.sql.Insert.<init>:(Lorg/hibernate/dialect/Dialect;)V
         1: .line 2672
            aload 0 /* this */
            iload 3 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableName:(I)Ljava/lang/String;
            invokevirtual org.hibernate.sql.Insert.setTableName:(Ljava/lang/String;)Lorg/hibernate/sql/Insert;
         2: .line 2671
            astore 4 /* insert */
        start local 4 // org.hibernate.sql.Insert insert
         3: .line 2675
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: goto 28
         5: .line 2679
      StackMap locals: org.hibernate.sql.Insert int
      StackMap stack:
            aload 0 /* this */
            iload 5 /* i */
            iload 3 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isPropertyOfTable:(II)Z
            ifeq 27
         6: .line 2680
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lobProperties:Ljava/util/List;
            iload 5 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 27
         7: .line 2681
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getInDatabaseValueGenerationStrategies:()[Lorg/hibernate/tuple/InDatabaseValueGenerationStrategy;
            iload 5 /* i */
            aaload
            astore 6 /* generationStrategy */
        start local 6 // org.hibernate.tuple.InDatabaseValueGenerationStrategy generationStrategy
         8: .line 2682
            aload 6 /* generationStrategy */
            ifnull 25
            aload 6 /* generationStrategy */
            invokeinterface org.hibernate.tuple.InDatabaseValueGenerationStrategy.getGenerationTiming:()Lorg/hibernate/tuple/GenerationTiming;
            invokevirtual org.hibernate.tuple.GenerationTiming.includesInsert:()Z
            ifeq 25
         9: .line 2683
            aload 6 /* generationStrategy */
            invokeinterface org.hibernate.tuple.InDatabaseValueGenerationStrategy.referenceColumnsInSql:()Z
            ifeq 27
        10: .line 2685
            aload 6 /* generationStrategy */
            invokeinterface org.hibernate.tuple.InDatabaseValueGenerationStrategy.getReferencedColumnValues:()[Ljava/lang/String;
            ifnonnull 13
        11: .line 2686
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnWriters:[[Ljava/lang/String;
            iload 5 /* i */
            aaload
            astore 7 /* values */
        start local 7 // java.lang.String[] values
        12: .line 2687
            goto 23
        end local 7 // java.lang.String[] values
        13: .line 2689
      StackMap locals: org.hibernate.tuple.InDatabaseValueGenerationStrategy
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnWriters:[[Ljava/lang/String;
            iload 5 /* i */
            aaload
            arraylength
            istore 8 /* numberOfColumns */
        start local 8 // int numberOfColumns
        14: .line 2690
            iload 8 /* numberOfColumns */
            anewarray java.lang.String
            astore 7 /* values */
        start local 7 // java.lang.String[] values
        15: .line 2691
            iconst_0
            istore 9 /* x */
        start local 9 // int x
        16: goto 22
        17: .line 2692
      StackMap locals: java.lang.String[] int int
      StackMap stack:
            aload 6 /* generationStrategy */
            invokeinterface org.hibernate.tuple.InDatabaseValueGenerationStrategy.getReferencedColumnValues:()[Ljava/lang/String;
            iload 9 /* x */
            aaload
            ifnull 20
        18: .line 2693
            aload 7 /* values */
            iload 9 /* x */
            aload 6 /* generationStrategy */
            invokeinterface org.hibernate.tuple.InDatabaseValueGenerationStrategy.getReferencedColumnValues:()[Ljava/lang/String;
            iload 9 /* x */
            aaload
            aastore
        19: .line 2694
            goto 21
        20: .line 2696
      StackMap locals:
      StackMap stack:
            aload 7 /* values */
            iload 9 /* x */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnWriters:[[Ljava/lang/String;
            iload 5 /* i */
            aaload
            iload 9 /* x */
            aaload
            aastore
        21: .line 2691
      StackMap locals:
      StackMap stack:
            iinc 9 /* x */ 1
      StackMap locals:
      StackMap stack:
        22: iload 9 /* x */
            iload 8 /* numberOfColumns */
            if_icmplt 17
        end local 9 // int x
        end local 8 // int numberOfColumns
        23: .line 2700
      StackMap locals:
      StackMap stack:
            aload 4 /* insert */
            aload 0 /* this */
            iload 5 /* i */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyColumnNames:(I)[Ljava/lang/String;
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnInsertable:[[Z
            iload 5 /* i */
            aaload
            aload 7 /* values */
            invokevirtual org.hibernate.sql.Insert.addColumns:([Ljava/lang/String;[Z[Ljava/lang/String;)Lorg/hibernate/sql/Insert;
            pop
        end local 7 // java.lang.String[] values
        24: .line 2702
            goto 27
        25: .line 2703
      StackMap locals:
      StackMap stack:
            aload 2 /* includeProperty */
            iload 5 /* i */
            baload
            ifeq 27
        26: .line 2704
            aload 4 /* insert */
            aload 0 /* this */
            iload 5 /* i */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyColumnNames:(I)[Ljava/lang/String;
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnInsertable:[[Z
            iload 5 /* i */
            aaload
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnWriters:[[Ljava/lang/String;
            iload 5 /* i */
            aaload
            invokevirtual org.hibernate.sql.Insert.addColumns:([Ljava/lang/String;[Z[Ljava/lang/String;)Lorg/hibernate/sql/Insert;
            pop
        end local 6 // org.hibernate.tuple.InDatabaseValueGenerationStrategy generationStrategy
        27: .line 2675
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        28: iload 5 /* i */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertySpan:()I
            if_icmplt 5
        end local 5 // int i
        29: .line 2711
            iload 3 /* j */
            ifne 31
        30: .line 2712
            aload 0 /* this */
            aload 4 /* insert */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.addDiscriminatorToInsert:(Lorg/hibernate/sql/Insert;)V
        31: .line 2716
      StackMap locals:
      StackMap stack:
            iload 3 /* j */
            ifne 34
            iload 1 /* identityInsert */
            ifeq 34
        32: .line 2717
            aload 4 /* insert */
            aload 0 /* this */
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getKeyColumns:(I)[Ljava/lang/String;
            iconst_0
            aaload
            invokevirtual org.hibernate.sql.Insert.addIdentityColumn:(Ljava/lang/String;)Lorg/hibernate/sql/Insert;
            pop
        33: .line 2718
            goto 35
        34: .line 2720
      StackMap locals:
      StackMap stack:
            aload 4 /* insert */
            aload 0 /* this */
            iload 3 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getKeyColumns:(I)[Ljava/lang/String;
            invokevirtual org.hibernate.sql.Insert.addColumns:([Ljava/lang/String;)Lorg/hibernate/sql/Insert;
            pop
        35: .line 2723
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.isCommentsEnabled:()Z
            ifeq 37
        36: .line 2724
            aload 4 /* insert */
            new java.lang.StringBuilder
            dup
            ldc "insert "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Insert.setComment:(Ljava/lang/String;)Lorg/hibernate/sql/Insert;
            pop
        37: .line 2730
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lobProperties:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 45
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int boolean[] int org.hibernate.sql.Insert top java.util.Iterator
      StackMap stack:
        38: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 5 /* i */
        start local 5 // int i
        39: .line 2731
            aload 2 /* includeProperty */
            iload 5 /* i */
            baload
            ifeq 45
            aload 0 /* this */
            iload 5 /* i */
            iload 3 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isPropertyOfTable:(II)Z
            ifeq 45
        40: .line 2733
            aload 4 /* insert */
        41: .line 2734
            aload 0 /* this */
            iload 5 /* i */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyColumnNames:(I)[Ljava/lang/String;
        42: .line 2735
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnInsertable:[[Z
            iload 5 /* i */
            aaload
        43: .line 2736
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnWriters:[[Ljava/lang/String;
            iload 5 /* i */
            aaload
        44: .line 2733
            invokevirtual org.hibernate.sql.Insert.addColumns:([Ljava/lang/String;[Z[Ljava/lang/String;)Lorg/hibernate/sql/Insert;
            pop
        end local 5 // int i
        45: .line 2730
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 38
        46: .line 2741
            aload 4 /* insert */
            invokevirtual org.hibernate.sql.Insert.toStatementString:()Ljava/lang/String;
            astore 5 /* result */
        start local 5 // java.lang.String result
        47: .line 2744
            iload 3 /* j */
            ifne 49
            iload 1 /* identityInsert */
            ifeq 49
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.useInsertSelectIdentity:()Z
            ifeq 49
        48: .line 2745
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            aload 5 /* result */
            invokevirtual org.hibernate.dialect.Dialect.appendIdentitySelectToInsert:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* result */
        49: .line 2748
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int boolean[] int org.hibernate.sql.Insert java.lang.String
      StackMap stack:
            aload 5 /* result */
            areturn
        end local 5 // java.lang.String result
        end local 4 // org.hibernate.sql.Insert insert
        end local 3 // int j
        end local 2 // boolean[] includeProperty
        end local 1 // boolean identityInsert
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   50     0                this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   50     1      identityInsert  Z
            0   50     2     includeProperty  [Z
            0   50     3                   j  I
            3   50     4              insert  Lorg/hibernate/sql/Insert;
            4   29     5                   i  I
            8   27     6  generationStrategy  Lorg/hibernate/tuple/InDatabaseValueGenerationStrategy;
           12   13     7              values  [Ljava/lang/String;
           15   24     7              values  [Ljava/lang/String;
           14   23     8     numberOfColumns  I
           16   23     9                   x  I
           39   45     5                   i  I
           47   50     5              result  Ljava/lang/String;
    MethodParameters:
                 Name  Flags
      identityInsert   
      includeProperty  
      j                

  protected java.lang.String generateIdentityInsertString(boolean[]);
    descriptor: ([Z)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // boolean[] includeProperty
         0: .line 2761
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.identityDelegate:Lorg/hibernate/id/insert/InsertGeneratedIdentifierDelegate;
            invokeinterface org.hibernate.id.insert.InsertGeneratedIdentifierDelegate.prepareIdentifierGeneratingInsert:()Lorg/hibernate/id/insert/IdentifierGeneratingInsert;
            astore 2 /* insert */
        start local 2 // org.hibernate.sql.Insert insert
         1: .line 2762
            aload 2 /* insert */
            aload 0 /* this */
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableName:(I)Ljava/lang/String;
            invokevirtual org.hibernate.sql.Insert.setTableName:(Ljava/lang/String;)Lorg/hibernate/sql/Insert;
            pop
         2: .line 2765
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 7
         4: .line 2766
      StackMap locals: org.hibernate.sql.Insert int
      StackMap stack:
            aload 1 /* includeProperty */
            iload 3 /* i */
            baload
            ifeq 6
            aload 0 /* this */
            iload 3 /* i */
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isPropertyOfTable:(II)Z
            ifeq 6
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lobProperties:Ljava/util/List;
            iload 3 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 6
         5: .line 2768
            aload 2 /* insert */
            aload 0 /* this */
            iload 3 /* i */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyColumnNames:(I)[Ljava/lang/String;
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnInsertable:[[Z
            iload 3 /* i */
            aaload
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnWriters:[[Ljava/lang/String;
            iload 3 /* i */
            aaload
            invokevirtual org.hibernate.sql.Insert.addColumns:([Ljava/lang/String;[Z[Ljava/lang/String;)Lorg/hibernate/sql/Insert;
            pop
         6: .line 2765
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertySpan:()I
            if_icmplt 4
        end local 3 // int i
         8: .line 2775
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lobProperties:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 12
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister boolean[] org.hibernate.sql.Insert top java.util.Iterator
      StackMap stack:
         9: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 3 /* i */
        start local 3 // int i
        10: .line 2776
            aload 1 /* includeProperty */
            iload 3 /* i */
            baload
            ifeq 12
            aload 0 /* this */
            iload 3 /* i */
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isPropertyOfTable:(II)Z
            ifeq 12
        11: .line 2777
            aload 2 /* insert */
            aload 0 /* this */
            iload 3 /* i */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyColumnNames:(I)[Ljava/lang/String;
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnInsertable:[[Z
            iload 3 /* i */
            aaload
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnWriters:[[Ljava/lang/String;
            iload 3 /* i */
            aaload
            invokevirtual org.hibernate.sql.Insert.addColumns:([Ljava/lang/String;[Z[Ljava/lang/String;)Lorg/hibernate/sql/Insert;
            pop
        end local 3 // int i
        12: .line 2775
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        13: .line 2782
            aload 0 /* this */
            aload 2 /* insert */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.addDiscriminatorToInsert:(Lorg/hibernate/sql/Insert;)V
        14: .line 2786
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.isCommentsEnabled:()Z
            ifeq 16
        15: .line 2787
            aload 2 /* insert */
            new java.lang.StringBuilder
            dup
            ldc "insert "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Insert.setComment:(Ljava/lang/String;)Lorg/hibernate/sql/Insert;
            pop
        16: .line 2790
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister boolean[] org.hibernate.sql.Insert
      StackMap stack:
            aload 2 /* insert */
            invokevirtual org.hibernate.sql.Insert.toStatementString:()Ljava/lang/String;
            areturn
        end local 2 // org.hibernate.sql.Insert insert
        end local 1 // boolean[] includeProperty
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   17     0             this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   17     1  includeProperty  [Z
            1   17     2           insert  Lorg/hibernate/sql/Insert;
            3    8     3                i  I
           10   12     3                i  I
    MethodParameters:
                 Name  Flags
      includeProperty  

  protected java.lang.String generateDeleteString(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int j
         0: .line 2797
            new org.hibernate.sql.Delete
            dup
            invokespecial org.hibernate.sql.Delete.<init>:()V
         1: .line 2798
            aload 0 /* this */
            iload 1 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableName:(I)Ljava/lang/String;
            invokevirtual org.hibernate.sql.Delete.setTableName:(Ljava/lang/String;)Lorg/hibernate/sql/Delete;
         2: .line 2799
            aload 0 /* this */
            iload 1 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getKeyColumns:(I)[Ljava/lang/String;
            invokevirtual org.hibernate.sql.Delete.addPrimaryKeyColumns:([Ljava/lang/String;)Lorg/hibernate/sql/Delete;
         3: .line 2797
            astore 2 /* delete */
        start local 2 // org.hibernate.sql.Delete delete
         4: .line 2800
            iload 1 /* j */
            ifne 6
         5: .line 2801
            aload 2 /* delete */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionColumnName:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Delete.setVersionColumnName:(Ljava/lang/String;)Lorg/hibernate/sql/Delete;
            pop
         6: .line 2803
      StackMap locals: org.hibernate.sql.Delete
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.isCommentsEnabled:()Z
            ifeq 8
         7: .line 2804
            aload 2 /* delete */
            new java.lang.StringBuilder
            dup
            ldc "delete "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Delete.setComment:(Ljava/lang/String;)Lorg/hibernate/sql/Delete;
            pop
         8: .line 2806
      StackMap locals:
      StackMap stack:
            aload 2 /* delete */
            invokevirtual org.hibernate.sql.Delete.toStatementString:()Ljava/lang/String;
            areturn
        end local 2 // org.hibernate.sql.Delete delete
        end local 1 // int j
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    9     1       j  I
            4    9     2  delete  Lorg/hibernate/sql/Delete;
    MethodParameters:
      Name  Flags
      j     

  protected int dehydrate(java.io.Serializable, java.lang.Object[], boolean[], boolean[][], int, java.sql.PreparedStatement, org.hibernate.engine.spi.SessionImplementor, boolean);
    descriptor: (Ljava/io/Serializable;[Ljava/lang/Object;[Z[[ZILjava/sql/PreparedStatement;Lorg/hibernate/engine/spi/SessionImplementor;Z)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=11, locals=9, args_size=9
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.io.Serializable id
        start local 2 // java.lang.Object[] fields
        start local 3 // boolean[] includeProperty
        start local 4 // boolean[][] includeColumns
        start local 5 // int j
        start local 6 // java.sql.PreparedStatement st
        start local 7 // org.hibernate.engine.spi.SessionImplementor session
        start local 8 // boolean isUpdate
         0: .line 2818
            aload 0 /* this */
            aload 1 /* id */
            aload 2 /* fields */
            aconst_null
            aload 3 /* includeProperty */
            aload 4 /* includeColumns */
            iload 5 /* j */
            aload 6 /* st */
            aload 7 /* session */
            iconst_1
            iload 8 /* isUpdate */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.dehydrate:(Ljava/io/Serializable;[Ljava/lang/Object;Ljava/lang/Object;[Z[[ZILjava/sql/PreparedStatement;Lorg/hibernate/engine/spi/SessionImplementor;IZ)I
            ireturn
        end local 8 // boolean isUpdate
        end local 7 // org.hibernate.engine.spi.SessionImplementor session
        end local 6 // java.sql.PreparedStatement st
        end local 5 // int j
        end local 4 // boolean[][] includeColumns
        end local 3 // boolean[] includeProperty
        end local 2 // java.lang.Object[] fields
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1               id  Ljava/io/Serializable;
            0    1     2           fields  [Ljava/lang/Object;
            0    1     3  includeProperty  [Z
            0    1     4   includeColumns  [[Z
            0    1     5                j  I
            0    1     6               st  Ljava/sql/PreparedStatement;
            0    1     7          session  Lorg/hibernate/engine/spi/SessionImplementor;
            0    1     8         isUpdate  Z
    Exceptions:
      throws org.hibernate.HibernateException, java.sql.SQLException
    MethodParameters:
                 Name  Flags
      id               
      fields           
      includeProperty  
      includeColumns   
      j                
      st               
      session          
      isUpdate         

  protected int dehydrate(java.io.Serializable, java.lang.Object[], java.lang.Object, boolean[], boolean[][], int, java.sql.PreparedStatement, org.hibernate.engine.spi.SessionImplementor, int, boolean);
    descriptor: (Ljava/io/Serializable;[Ljava/lang/Object;Ljava/lang/Object;[Z[[ZILjava/sql/PreparedStatement;Lorg/hibernate/engine/spi/SessionImplementor;IZ)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=13, args_size=11
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.io.Serializable id
        start local 2 // java.lang.Object[] fields
        start local 3 // java.lang.Object rowId
        start local 4 // boolean[] includeProperty
        start local 5 // boolean[][] includeColumns
        start local 6 // int j
        start local 7 // java.sql.PreparedStatement ps
        start local 8 // org.hibernate.engine.spi.SessionImplementor session
        start local 9 // int index
        start local 10 // boolean isUpdate
         0: .line 2836
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 2
         1: .line 2837
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Dehydrating entity: {0}"
            aload 0 /* this */
            aload 1 /* id */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracev:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 2840
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 11 /* i */
        start local 11 // int i
         3: goto 9
         4: .line 2841
      StackMap locals: int
      StackMap stack:
            aload 4 /* includeProperty */
            iload 11 /* i */
            baload
            ifeq 8
            aload 0 /* this */
            iload 11 /* i */
            iload 6 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isPropertyOfTable:(II)Z
            ifeq 8
         5: .line 2842
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lobProperties:Ljava/util/List;
            iload 11 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 8
         6: .line 2843
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyTypes:()[Lorg/hibernate/type/Type;
            iload 11 /* i */
            aaload
            aload 7 /* ps */
            aload 2 /* fields */
            iload 11 /* i */
            aaload
            iload 9 /* index */
            aload 5 /* includeColumns */
            iload 11 /* i */
            aaload
            aload 8 /* session */
            invokeinterface org.hibernate.type.Type.nullSafeSet:(Ljava/sql/PreparedStatement;Ljava/lang/Object;I[ZLorg/hibernate/engine/spi/SessionImplementor;)V
         7: .line 2844
            iload 9 /* index */
            aload 5 /* includeColumns */
            iload 11 /* i */
            aaload
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.countTrue:([Z)I
            iadd
            istore 9 /* index */
         8: .line 2840
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 11 /* i */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertySpan:()I
            if_icmplt 4
        end local 11 // int i
        10: .line 2848
            iload 10 /* isUpdate */
            ifne 12
        11: .line 2849
            iload 9 /* index */
            aload 0 /* this */
            aload 1 /* id */
            aload 3 /* rowId */
            aload 7 /* ps */
            aload 8 /* session */
            iload 9 /* index */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.dehydrateId:(Ljava/io/Serializable;Ljava/lang/Object;Ljava/sql/PreparedStatement;Lorg/hibernate/engine/spi/SessionImplementor;I)I
            iadd
            istore 9 /* index */
        12: .line 2855
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lobProperties:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 12
            goto 17
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] java.lang.Object boolean[] boolean[][] int java.sql.PreparedStatement org.hibernate.engine.spi.SessionImplementor int int top java.util.Iterator
      StackMap stack:
        13: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 11 /* i */
        start local 11 // int i
        14: .line 2856
            aload 4 /* includeProperty */
            iload 11 /* i */
            baload
            ifeq 17
            aload 0 /* this */
            iload 11 /* i */
            iload 6 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isPropertyOfTable:(II)Z
            ifeq 17
        15: .line 2857
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyTypes:()[Lorg/hibernate/type/Type;
            iload 11 /* i */
            aaload
            aload 7 /* ps */
            aload 2 /* fields */
            iload 11 /* i */
            aaload
            iload 9 /* index */
            aload 5 /* includeColumns */
            iload 11 /* i */
            aaload
            aload 8 /* session */
            invokeinterface org.hibernate.type.Type.nullSafeSet:(Ljava/sql/PreparedStatement;Ljava/lang/Object;I[ZLorg/hibernate/engine/spi/SessionImplementor;)V
        16: .line 2858
            iload 9 /* index */
            aload 5 /* includeColumns */
            iload 11 /* i */
            aaload
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.countTrue:([Z)I
            iadd
            istore 9 /* index */
        end local 11 // int i
        17: .line 2855
      StackMap locals:
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        18: .line 2862
            iload 10 /* isUpdate */
            ifeq 20
        19: .line 2863
            iload 9 /* index */
            aload 0 /* this */
            aload 1 /* id */
            aload 3 /* rowId */
            aload 7 /* ps */
            aload 8 /* session */
            iload 9 /* index */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.dehydrateId:(Ljava/io/Serializable;Ljava/lang/Object;Ljava/sql/PreparedStatement;Lorg/hibernate/engine/spi/SessionImplementor;I)I
            iadd
            istore 9 /* index */
        20: .line 2866
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] java.lang.Object boolean[] boolean[][] int java.sql.PreparedStatement org.hibernate.engine.spi.SessionImplementor int int
      StackMap stack:
            iload 9 /* index */
            ireturn
        end local 10 // boolean isUpdate
        end local 9 // int index
        end local 8 // org.hibernate.engine.spi.SessionImplementor session
        end local 7 // java.sql.PreparedStatement ps
        end local 6 // int j
        end local 5 // boolean[][] includeColumns
        end local 4 // boolean[] includeProperty
        end local 3 // java.lang.Object rowId
        end local 2 // java.lang.Object[] fields
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   21     0             this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   21     1               id  Ljava/io/Serializable;
            0   21     2           fields  [Ljava/lang/Object;
            0   21     3            rowId  Ljava/lang/Object;
            0   21     4  includeProperty  [Z
            0   21     5   includeColumns  [[Z
            0   21     6                j  I
            0   21     7               ps  Ljava/sql/PreparedStatement;
            0   21     8          session  Lorg/hibernate/engine/spi/SessionImplementor;
            0   21     9            index  I
            0   21    10         isUpdate  Z
            3   10    11                i  I
           14   17    11                i  I
    Exceptions:
      throws java.sql.SQLException, org.hibernate.HibernateException
    MethodParameters:
                 Name  Flags
      id               final
      fields           final
      rowId            final
      includeProperty  final
      includeColumns   final
      j                final
      ps               final
      session          final
      index            
      isUpdate         

  private int dehydrateId(java.io.Serializable, java.lang.Object, java.sql.PreparedStatement, org.hibernate.engine.spi.SessionImplementor, int);
    descriptor: (Ljava/io/Serializable;Ljava/lang/Object;Ljava/sql/PreparedStatement;Lorg/hibernate/engine/spi/SessionImplementor;I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=6
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.io.Serializable id
        start local 2 // java.lang.Object rowId
        start local 3 // java.sql.PreparedStatement ps
        start local 4 // org.hibernate.engine.spi.SessionImplementor session
        start local 5 // int index
         0: .line 2876
            aload 2 /* rowId */
            ifnull 3
         1: .line 2877
            aload 3 /* ps */
            iload 5 /* index */
            aload 2 /* rowId */
            invokeinterface java.sql.PreparedStatement.setObject:(ILjava/lang/Object;)V
         2: .line 2878
            iconst_1
            ireturn
         3: .line 2879
      StackMap locals:
      StackMap stack:
            aload 1 /* id */
            ifnull 6
         4: .line 2880
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            aload 3 /* ps */
            aload 1 /* id */
            iload 5 /* index */
            aload 4 /* session */
            invokeinterface org.hibernate.type.Type.nullSafeSet:(Ljava/sql/PreparedStatement;Ljava/lang/Object;ILorg/hibernate/engine/spi/SessionImplementor;)V
         5: .line 2881
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnSpan:()I
            ireturn
         6: .line 2883
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 5 // int index
        end local 4 // org.hibernate.engine.spi.SessionImplementor session
        end local 3 // java.sql.PreparedStatement ps
        end local 2 // java.lang.Object rowId
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    7     1       id  Ljava/io/Serializable;
            0    7     2    rowId  Ljava/lang/Object;
            0    7     3       ps  Ljava/sql/PreparedStatement;
            0    7     4  session  Lorg/hibernate/engine/spi/SessionImplementor;
            0    7     5    index  I
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
         Name  Flags
      id       final
      rowId    final
      ps       final
      session  final
      index    

  public java.lang.Object[] hydrate(java.sql.ResultSet, java.io.Serializable, java.lang.Object, org.hibernate.persister.entity.Loadable, java.lang.String[][], boolean, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/sql/ResultSet;Ljava/io/Serializable;Ljava/lang/Object;Lorg/hibernate/persister/entity/Loadable;[[Ljava/lang/String;ZLorg/hibernate/engine/spi/SessionImplementor;)[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=24, args_size=8
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.sql.ResultSet rs
        start local 2 // java.io.Serializable id
        start local 3 // java.lang.Object object
        start local 4 // org.hibernate.persister.entity.Loadable rootLoadable
        start local 5 // java.lang.String[][] suffixedPropertyColumns
        start local 6 // boolean allProperties
        start local 7 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 2900
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 2
         1: .line 2901
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Hydrating entity: {0}"
            aload 0 /* this */
            aload 2 /* id */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracev:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 2904
      StackMap locals:
      StackMap stack:
            aload 4 /* rootLoadable */
            checkcast org.hibernate.persister.entity.AbstractEntityPersister
            astore 8 /* rootPersister */
        start local 8 // org.hibernate.persister.entity.AbstractEntityPersister rootPersister
         3: .line 2906
            aload 8 /* rootPersister */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasSequentialSelect:()Z
            istore 9 /* hasDeferred */
        start local 9 // boolean hasDeferred
         4: .line 2907
            aconst_null
            astore 10 /* sequentialSelect */
        start local 10 // java.sql.PreparedStatement sequentialSelect
         5: .line 2908
            aconst_null
            astore 11 /* sequentialResultSet */
        start local 11 // java.sql.ResultSet sequentialResultSet
         6: .line 2909
            iconst_0
            istore 12 /* sequentialSelectEmpty */
        start local 12 // boolean sequentialSelectEmpty
         7: .line 2912
            iload 9 /* hasDeferred */
            ifeq 19
         8: .line 2913
            aload 8 /* rootPersister */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSequentialSelect:(Ljava/lang/String;)Ljava/lang/String;
            astore 13 /* sql */
        start local 13 // java.lang.String sql
         9: .line 2914
            aload 13 /* sql */
            ifnull 19
        10: .line 2916
            aload 7 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
        11: .line 2917
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        12: .line 2918
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
        13: .line 2919
            aload 13 /* sql */
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
        14: .line 2916
            astore 10 /* sequentialSelect */
        15: .line 2920
            aload 8 /* rootPersister */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            aload 10 /* sequentialSelect */
            aload 2 /* id */
            iconst_1
            aload 7 /* session */
            invokeinterface org.hibernate.type.Type.nullSafeSet:(Ljava/sql/PreparedStatement;Ljava/lang/Object;ILorg/hibernate/engine/spi/SessionImplementor;)V
        16: .line 2921
            aload 7 /* 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 10 /* sequentialSelect */
            invokeinterface org.hibernate.engine.jdbc.spi.ResultSetReturn.extract:(Ljava/sql/PreparedStatement;)Ljava/sql/ResultSet;
            astore 11 /* sequentialResultSet */
        17: .line 2922
            aload 11 /* sequentialResultSet */
            invokeinterface java.sql.ResultSet.next:()Z
            ifne 19
        18: .line 2944
            iconst_1
            istore 12 /* sequentialSelectEmpty */
        end local 13 // java.lang.String sql
        19: .line 2949
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.sql.ResultSet java.io.Serializable java.lang.Object org.hibernate.persister.entity.Loadable java.lang.String[][] int org.hibernate.engine.spi.SessionImplementor org.hibernate.persister.entity.AbstractEntityPersister int java.sql.PreparedStatement java.sql.ResultSet int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyNames:()[Ljava/lang/String;
            astore 13 /* propNames */
        start local 13 // java.lang.String[] propNames
        20: .line 2950
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyTypes:()[Lorg/hibernate/type/Type;
            astore 14 /* types */
        start local 14 // org.hibernate.type.Type[] types
        21: .line 2951
            aload 14 /* types */
            arraylength
            anewarray java.lang.Object
            astore 15 /* values */
        start local 15 // java.lang.Object[] values
        22: .line 2952
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyLaziness:()[Z
            astore 16 /* laziness */
        start local 16 // boolean[] laziness
        23: .line 2953
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertySubclassNameClosure:()[Ljava/lang/String;
            astore 17 /* propSubclassNames */
        start local 17 // java.lang.String[] propSubclassNames
        24: .line 2955
            iconst_0
            istore 18 /* i */
        start local 18 // int i
        25: goto 48
        26: .line 2956
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.sql.ResultSet java.io.Serializable java.lang.Object org.hibernate.persister.entity.Loadable java.lang.String[][] int org.hibernate.engine.spi.SessionImplementor org.hibernate.persister.entity.AbstractEntityPersister int java.sql.PreparedStatement java.sql.ResultSet int java.lang.String[] org.hibernate.type.Type[] java.lang.Object[] boolean[] java.lang.String[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertySelectable:[Z
            iload 18 /* i */
            baload
            ifne 29
        27: .line 2957
            aload 15 /* values */
            iload 18 /* i */
            getstatic org.hibernate.property.BackrefPropertyAccessor.UNKNOWN:Ljava/io/Serializable;
            aastore
        28: .line 2958
            goto 47
        29: .line 2959
      StackMap locals:
      StackMap stack:
            iload 6 /* allProperties */
            ifne 30
            aload 16 /* laziness */
            iload 18 /* i */
            baload
            ifne 46
        30: .line 2961
      StackMap locals:
      StackMap stack:
            iload 9 /* hasDeferred */
            ifeq 33
        31: .line 2962
            aload 8 /* rootPersister */
            aload 13 /* propNames */
            iload 18 /* i */
            aaload
            aload 17 /* propSubclassNames */
            iload 18 /* i */
            aaload
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isSubclassPropertyDeferred:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 33
        32: .line 2961
            iconst_1
            goto 34
      StackMap locals:
      StackMap stack:
        33: iconst_0
      StackMap locals:
      StackMap stack: int
        34: istore 19 /* propertyIsDeferred */
        start local 19 // boolean propertyIsDeferred
        35: .line 2963
            iload 19 /* propertyIsDeferred */
            ifeq 38
            iload 12 /* sequentialSelectEmpty */
            ifeq 38
        36: .line 2964
            aload 15 /* values */
            iload 18 /* i */
            aconst_null
            aastore
        37: .line 2965
            goto 47
        38: .line 2967
      StackMap locals: int
      StackMap stack:
            iload 19 /* propertyIsDeferred */
            ifeq 39
            aload 11 /* sequentialResultSet */
            goto 40
      StackMap locals:
      StackMap stack:
        39: aload 1 /* rs */
      StackMap locals:
      StackMap stack: java.sql.ResultSet
        40: astore 20 /* propertyResultSet */
        start local 20 // java.sql.ResultSet propertyResultSet
        41: .line 2968
            iload 19 /* propertyIsDeferred */
            ifeq 42
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnAliases:[[Ljava/lang/String;
            iload 18 /* i */
            aaload
            goto 43
      StackMap locals: java.sql.ResultSet
      StackMap stack:
        42: aload 5 /* suffixedPropertyColumns */
            iload 18 /* i */
            aaload
      StackMap locals:
      StackMap stack: java.lang.String[]
        43: astore 21 /* cols */
        start local 21 // java.lang.String[] cols
        44: .line 2969
            aload 15 /* values */
            iload 18 /* i */
            aload 14 /* types */
            iload 18 /* i */
            aaload
            aload 20 /* propertyResultSet */
            aload 21 /* cols */
            aload 7 /* session */
            aload 3 /* object */
            invokeinterface org.hibernate.type.Type.hydrate:(Ljava/sql/ResultSet;[Ljava/lang/String;Lorg/hibernate/engine/spi/SessionImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            aastore
        end local 21 // java.lang.String[] cols
        end local 20 // java.sql.ResultSet propertyResultSet
        end local 19 // boolean propertyIsDeferred
        45: .line 2971
            goto 47
        46: .line 2973
      StackMap locals:
      StackMap stack:
            aload 15 /* values */
            iload 18 /* i */
            getstatic org.hibernate.bytecode.instrumentation.spi.LazyPropertyInitializer.UNFETCHED_PROPERTY:Ljava/io/Serializable;
            aastore
        47: .line 2955
      StackMap locals:
      StackMap stack:
            iinc 18 /* i */ 1
      StackMap locals:
      StackMap stack:
        48: iload 18 /* i */
            aload 14 /* types */
            arraylength
            if_icmplt 26
        end local 18 // int i
        49: .line 2977
            aload 11 /* sequentialResultSet */
            ifnull 51
        50: .line 2978
            aload 7 /* 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 11 /* sequentialResultSet */
            aload 10 /* sequentialSelect */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        51: .line 2981
      StackMap locals:
      StackMap stack:
            aload 15 /* values */
            astore 23
        52: .line 2985
            aload 10 /* sequentialSelect */
            ifnull 54
        53: .line 2986
            aload 7 /* 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 10 /* sequentialSelect */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        54: .line 2981
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.sql.ResultSet java.io.Serializable java.lang.Object org.hibernate.persister.entity.Loadable java.lang.String[][] int org.hibernate.engine.spi.SessionImplementor org.hibernate.persister.entity.AbstractEntityPersister int java.sql.PreparedStatement java.sql.ResultSet int java.lang.String[] org.hibernate.type.Type[] java.lang.Object[] boolean[] java.lang.String[] top top top top top java.lang.Object[]
      StackMap stack:
            aload 23
            areturn
        end local 17 // java.lang.String[] propSubclassNames
        end local 16 // boolean[] laziness
        end local 15 // java.lang.Object[] values
        end local 14 // org.hibernate.type.Type[] types
        end local 13 // java.lang.String[] propNames
        55: .line 2984
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.sql.ResultSet java.io.Serializable java.lang.Object org.hibernate.persister.entity.Loadable java.lang.String[][] int org.hibernate.engine.spi.SessionImplementor org.hibernate.persister.entity.AbstractEntityPersister int java.sql.PreparedStatement java.sql.ResultSet int
      StackMap stack: java.lang.Throwable
            astore 22
        56: .line 2985
            aload 10 /* sequentialSelect */
            ifnull 58
        57: .line 2986
            aload 7 /* 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 10 /* sequentialSelect */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        58: .line 2988
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.sql.ResultSet java.io.Serializable java.lang.Object org.hibernate.persister.entity.Loadable java.lang.String[][] int org.hibernate.engine.spi.SessionImplementor org.hibernate.persister.entity.AbstractEntityPersister int java.sql.PreparedStatement java.sql.ResultSet int top top top top top top top top top java.lang.Throwable
      StackMap stack:
            aload 22
            athrow
        end local 12 // boolean sequentialSelectEmpty
        end local 11 // java.sql.ResultSet sequentialResultSet
        end local 10 // java.sql.PreparedStatement sequentialSelect
        end local 9 // boolean hasDeferred
        end local 8 // org.hibernate.persister.entity.AbstractEntityPersister rootPersister
        end local 7 // org.hibernate.engine.spi.SessionImplementor session
        end local 6 // boolean allProperties
        end local 5 // java.lang.String[][] suffixedPropertyColumns
        end local 4 // org.hibernate.persister.entity.Loadable rootLoadable
        end local 3 // java.lang.Object object
        end local 2 // java.io.Serializable id
        end local 1 // java.sql.ResultSet rs
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   59     0                     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   59     1                       rs  Ljava/sql/ResultSet;
            0   59     2                       id  Ljava/io/Serializable;
            0   59     3                   object  Ljava/lang/Object;
            0   59     4             rootLoadable  Lorg/hibernate/persister/entity/Loadable;
            0   59     5  suffixedPropertyColumns  [[Ljava/lang/String;
            0   59     6            allProperties  Z
            0   59     7                  session  Lorg/hibernate/engine/spi/SessionImplementor;
            3   59     8            rootPersister  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            4   59     9              hasDeferred  Z
            5   59    10         sequentialSelect  Ljava/sql/PreparedStatement;
            6   59    11      sequentialResultSet  Ljava/sql/ResultSet;
            7   59    12    sequentialSelectEmpty  Z
            9   19    13                      sql  Ljava/lang/String;
           20   55    13                propNames  [Ljava/lang/String;
           21   55    14                    types  [Lorg/hibernate/type/Type;
           22   55    15                   values  [Ljava/lang/Object;
           23   55    16                 laziness  [Z
           24   55    17        propSubclassNames  [Ljava/lang/String;
           25   49    18                        i  I
           35   45    19       propertyIsDeferred  Z
           41   45    20        propertyResultSet  Ljava/sql/ResultSet;
           44   45    21                     cols  [Ljava/lang/String;
      Exception table:
        from    to  target  type
           7    52      55  any
    Exceptions:
      throws java.sql.SQLException, org.hibernate.HibernateException
    MethodParameters:
                         Name  Flags
      rs                       final
      id                       final
      object                   final
      rootLoadable             final
      suffixedPropertyColumns  final
      allProperties            final
      session                  final

  protected boolean useInsertSelectIdentity();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 2992
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.useGetGeneratedKeys:()Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokevirtual org.hibernate.dialect.Dialect.supportsInsertSelectIdentity:()Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected boolean useGetGeneratedKeys();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 2996
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.isGetGeneratedKeysEnabled:()Z
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected java.lang.String getSequentialSelect(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String entityName
         0: .line 3000
            new java.lang.UnsupportedOperationException
            dup
            ldc "no sequential selects"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  entityName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      entityName  

  protected java.io.Serializable insert(java.lang.Object[], boolean[], java.lang.String, java.lang.Object, org.hibernate.engine.spi.SessionImplementor);
    descriptor: ([Ljava/lang/Object;[ZLjava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/io/Serializable;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=7, args_size=6
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object[] fields
        start local 2 // boolean[] notNull
        start local 3 // java.lang.String sql
        start local 4 // java.lang.Object object
        start local 5 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 3016
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 4
         1: .line 3017
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Inserting entity: {0} (native id)"
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracev:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 3018
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifeq 4
         3: .line 3019
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Version: {0}"
            aload 1 /* fields */
            aload 0 /* this */
            invokestatic org.hibernate.engine.internal.Versioning.getVersion:([Ljava/lang/Object;Lorg/hibernate/persister/entity/EntityPersister;)Ljava/lang/Object;
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracev:(Ljava/lang/String;Ljava/lang/Object;)V
         4: .line 3023
      StackMap locals:
      StackMap stack:
            new org.hibernate.persister.entity.AbstractEntityPersister$4
            dup
            aload 0 /* this */
            aload 1 /* fields */
            aload 2 /* notNull */
            aload 5 /* session */
            aload 4 /* object */
            invokespecial org.hibernate.persister.entity.AbstractEntityPersister$4.<init>:(Lorg/hibernate/persister/entity/AbstractEntityPersister;[Ljava/lang/Object;[ZLorg/hibernate/engine/spi/SessionImplementor;Ljava/lang/Object;)V
            astore 6 /* binder */
        start local 6 // org.hibernate.id.insert.Binder binder
         5: .line 3032
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.identityDelegate:Lorg/hibernate/id/insert/InsertGeneratedIdentifierDelegate;
            aload 3 /* sql */
            aload 5 /* session */
            aload 6 /* binder */
            invokeinterface org.hibernate.id.insert.InsertGeneratedIdentifierDelegate.performInsert:(Ljava/lang/String;Lorg/hibernate/engine/spi/SessionImplementor;Lorg/hibernate/id/insert/Binder;)Ljava/io/Serializable;
            areturn
        end local 6 // org.hibernate.id.insert.Binder binder
        end local 5 // org.hibernate.engine.spi.SessionImplementor session
        end local 4 // java.lang.Object object
        end local 3 // java.lang.String sql
        end local 2 // boolean[] notNull
        end local 1 // java.lang.Object[] fields
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    6     1   fields  [Ljava/lang/Object;
            0    6     2  notNull  [Z
            0    6     3      sql  Ljava/lang/String;
            0    6     4   object  Ljava/lang/Object;
            0    6     5  session  Lorg/hibernate/engine/spi/SessionImplementor;
            5    6     6   binder  Lorg/hibernate/id/insert/Binder;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
         Name  Flags
      fields   final
      notNull  final
      sql      
      object   final
      session  final

  public java.lang.String getIdentitySelectString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 3037
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
         1: .line 3038
            aload 0 /* this */
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableName:(I)Ljava/lang/String;
         2: .line 3039
            aload 0 /* this */
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getKeyColumns:(I)[Ljava/lang/String;
            iconst_0
            aaload
         3: .line 3040
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.type.Type.sqlTypes:(Lorg/hibernate/engine/spi/Mapping;)[I
            iconst_0
            iaload
         4: .line 3037
            invokevirtual org.hibernate.dialect.Dialect.getIdentitySelectString:(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.String getSelectByUniqueKeyString(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String propertyName
         0: .line 3045
            new org.hibernate.sql.SimpleSelect
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokespecial org.hibernate.sql.SimpleSelect.<init>:(Lorg/hibernate/dialect/Dialect;)V
         1: .line 3046
            aload 0 /* this */
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableName:(I)Ljava/lang/String;
            invokevirtual org.hibernate.sql.SimpleSelect.setTableName:(Ljava/lang/String;)Lorg/hibernate/sql/SimpleSelect;
         2: .line 3047
            aload 0 /* this */
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getKeyColumns:(I)[Ljava/lang/String;
            invokevirtual org.hibernate.sql.SimpleSelect.addColumns:([Ljava/lang/String;)Lorg/hibernate/sql/SimpleSelect;
         3: .line 3048
            aload 0 /* this */
            aload 1 /* propertyName */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyColumnNames:(Ljava/lang/String;)[Ljava/lang/String;
            ldc "=?"
            invokevirtual org.hibernate.sql.SimpleSelect.addCondition:([Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/SimpleSelect;
         4: .line 3049
            invokevirtual org.hibernate.sql.SimpleSelect.toStatementString:()Ljava/lang/String;
         5: .line 3045
            areturn
        end local 1 // java.lang.String propertyName
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    6     1  propertyName  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      propertyName  

  protected void insert(java.io.Serializable, java.lang.Object[], boolean[], int, java.lang.String, java.lang.Object, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/io/Serializable;[Ljava/lang/Object;[ZILjava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=11, locals=14, args_size=8
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.io.Serializable id
        start local 2 // java.lang.Object[] fields
        start local 3 // boolean[] notNull
        start local 4 // int j
        start local 5 // java.lang.String sql
        start local 6 // java.lang.Object object
        start local 7 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 3069
            aload 0 /* this */
            iload 4 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isInverseTable:(I)Z
            ifeq 2
         1: .line 3070
            return
         2: .line 3075
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isNullableTable:(I)Z
            ifeq 4
            aload 0 /* this */
            aload 2 /* fields */
            iload 4 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isAllNull:([Ljava/lang/Object;I)Z
            ifeq 4
         3: .line 3076
            return
         4: .line 3079
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 8
         5: .line 3080
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Inserting entity: {0}"
            aload 0 /* this */
            aload 1 /* id */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracev:(Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 3081
            iload 4 /* j */
            ifne 8
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifeq 8
         7: .line 3082
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Version: {0}"
            aload 2 /* fields */
            aload 0 /* this */
            invokestatic org.hibernate.engine.internal.Versioning.getVersion:([Ljava/lang/Object;Lorg/hibernate/persister/entity/EntityPersister;)Ljava/lang/Object;
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracev:(Ljava/lang/String;Ljava/lang/Object;)V
         8: .line 3086
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.insertResultCheckStyles:[Lorg/hibernate/engine/spi/ExecuteUpdateResultCheckStyle;
            iload 4 /* j */
            aaload
            invokestatic org.hibernate.jdbc.Expectations.appropriateExpectation:(Lorg/hibernate/engine/spi/ExecuteUpdateResultCheckStyle;)Lorg/hibernate/jdbc/Expectation;
            astore 8 /* expectation */
        start local 8 // org.hibernate.jdbc.Expectation expectation
         9: .line 3089
            iload 4 /* j */
            ifne 10
            aload 8 /* expectation */
            invokeinterface org.hibernate.jdbc.Expectation.canBeBatched:()Z
            ifeq 10
            iconst_1
            goto 11
      StackMap locals: org.hibernate.jdbc.Expectation
      StackMap stack:
        10: iconst_0
      StackMap locals:
      StackMap stack: int
        11: istore 9 /* useBatch */
        start local 9 // boolean useBatch
        12: .line 3090
            iload 9 /* useBatch */
            ifeq 17
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.inserBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
            ifnonnull 17
        13: .line 3091
            aload 0 /* this */
            new org.hibernate.engine.jdbc.batch.internal.BasicBatchKey
            dup
        14: .line 3092
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "#INSERT"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 3093
            aload 8 /* expectation */
            invokespecial org.hibernate.engine.jdbc.batch.internal.BasicBatchKey.<init>:(Ljava/lang/String;Lorg/hibernate/jdbc/Expectation;)V
        16: .line 3091
            putfield org.hibernate.persister.entity.AbstractEntityPersister.inserBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
        17: .line 3096
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 4 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isInsertCallable:(I)Z
            istore 10 /* callable */
        start local 10 // boolean callable
        18: .line 3101
            iload 9 /* useBatch */
            ifeq 25
        19: .line 3102
            aload 7 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
        20: .line 3103
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        21: .line 3104
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.inserBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getBatch:(Lorg/hibernate/engine/jdbc/batch/spi/BatchKey;)Lorg/hibernate/engine/jdbc/batch/spi/Batch;
        22: .line 3105
            aload 5 /* sql */
            iload 10 /* callable */
            invokeinterface org.hibernate.engine.jdbc.batch.spi.Batch.getBatchStatement:(Ljava/lang/String;Z)Ljava/sql/PreparedStatement;
        23: .line 3102
            astore 11 /* insert */
        start local 11 // java.sql.PreparedStatement insert
        24: .line 3106
            goto 30
        end local 11 // java.sql.PreparedStatement insert
        25: .line 3108
      StackMap locals: int
      StackMap stack:
            aload 7 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
        26: .line 3109
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        27: .line 3110
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
        28: .line 3111
            aload 5 /* sql */
            iload 10 /* callable */
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;Z)Ljava/sql/PreparedStatement;
        29: .line 3108
            astore 11 /* insert */
        start local 11 // java.sql.PreparedStatement insert
        30: .line 3115
      StackMap locals: java.sql.PreparedStatement
      StackMap stack:
            iconst_1
            istore 12 /* index */
        start local 12 // int index
        31: .line 3116
            iload 12 /* index */
            aload 8 /* expectation */
            aload 11 /* insert */
            invokeinterface org.hibernate.jdbc.Expectation.prepare:(Ljava/sql/PreparedStatement;)I
            iadd
            istore 12 /* index */
        32: .line 3121
            aload 0 /* this */
            aload 1 /* id */
            aload 2 /* fields */
            aconst_null
            aload 3 /* notNull */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnInsertable:[[Z
            iload 4 /* j */
            aload 11 /* insert */
            aload 7 /* session */
            iload 12 /* index */
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.dehydrate:(Ljava/io/Serializable;[Ljava/lang/Object;Ljava/lang/Object;[Z[[ZILjava/sql/PreparedStatement;Lorg/hibernate/engine/spi/SessionImplementor;IZ)I
            pop
        33: .line 3123
            iload 9 /* useBatch */
            ifeq 36
        34: .line 3124
            aload 7 /* 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 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.inserBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getBatch:(Lorg/hibernate/engine/jdbc/batch/spi/BatchKey;)Lorg/hibernate/engine/jdbc/batch/spi/Batch;
            invokeinterface org.hibernate.engine.jdbc.batch.spi.Batch.addToBatch:()V
        35: .line 3125
            goto 46
        36: .line 3127
      StackMap locals: int
      StackMap stack:
            aload 8 /* expectation */
            aload 7 /* 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 11 /* insert */
            invokeinterface org.hibernate.engine.jdbc.spi.ResultSetReturn.executeUpdate:(Ljava/sql/PreparedStatement;)I
            aload 11 /* insert */
            iconst_m1
            invokeinterface org.hibernate.jdbc.Expectation.verifyOutcome:(ILjava/sql/PreparedStatement;I)V
        end local 12 // int index
        37: .line 3130
            goto 46
        38: .line 3131
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] boolean[] int java.lang.String java.lang.Object org.hibernate.engine.spi.SessionImplementor org.hibernate.jdbc.Expectation int int java.sql.PreparedStatement
      StackMap stack: java.sql.SQLException
            astore 12 /* e */
        start local 12 // java.sql.SQLException e
        39: .line 3132
            iload 9 /* useBatch */
            ifeq 41
        40: .line 3133
            aload 7 /* 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.abortBatch:()V
        41: .line 3135
      StackMap locals: java.sql.SQLException
      StackMap stack:
            aload 12 /* e */
            athrow
        end local 12 // java.sql.SQLException e
        42: .line 3137
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] boolean[] int java.lang.String java.lang.Object org.hibernate.engine.spi.SessionImplementor org.hibernate.jdbc.Expectation int int java.sql.PreparedStatement
      StackMap stack: java.lang.Throwable
            astore 13
        43: .line 3138
            iload 9 /* useBatch */
            ifne 45
        44: .line 3139
            aload 7 /* 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 11 /* insert */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        45: .line 3141
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] boolean[] int java.lang.String java.lang.Object org.hibernate.engine.spi.SessionImplementor org.hibernate.jdbc.Expectation int int java.sql.PreparedStatement top java.lang.Throwable
      StackMap stack:
            aload 13
            athrow
        46: .line 3138
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] boolean[] int java.lang.String java.lang.Object org.hibernate.engine.spi.SessionImplementor org.hibernate.jdbc.Expectation int int java.sql.PreparedStatement
      StackMap stack:
            iload 9 /* useBatch */
            ifne 55
        47: .line 3139
            aload 7 /* 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 11 /* insert */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        end local 11 // java.sql.PreparedStatement insert
        48: .line 3142
            goto 55
        49: .line 3143
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] boolean[] int java.lang.String java.lang.Object org.hibernate.engine.spi.SessionImplementor org.hibernate.jdbc.Expectation int int
      StackMap stack: java.sql.SQLException
            astore 11 /* e */
        start local 11 // java.sql.SQLException e
        50: .line 3144
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSQLExceptionHelper:()Lorg/hibernate/engine/jdbc/spi/SqlExceptionHelper;
        51: .line 3145
            aload 11 /* e */
        52: .line 3146
            new java.lang.StringBuilder
            dup
            ldc "could not insert: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        53: .line 3147
            aload 5 /* sql */
        54: .line 3144
            invokevirtual org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert:(Ljava/sql/SQLException;Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/JDBCException;
            athrow
        end local 11 // java.sql.SQLException e
        55: .line 3151
      StackMap locals:
      StackMap stack:
            return
        end local 10 // boolean callable
        end local 9 // boolean useBatch
        end local 8 // org.hibernate.jdbc.Expectation expectation
        end local 7 // org.hibernate.engine.spi.SessionImplementor session
        end local 6 // java.lang.Object object
        end local 5 // java.lang.String sql
        end local 4 // int j
        end local 3 // boolean[] notNull
        end local 2 // java.lang.Object[] fields
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   56     0         this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   56     1           id  Ljava/io/Serializable;
            0   56     2       fields  [Ljava/lang/Object;
            0   56     3      notNull  [Z
            0   56     4            j  I
            0   56     5          sql  Ljava/lang/String;
            0   56     6       object  Ljava/lang/Object;
            0   56     7      session  Lorg/hibernate/engine/spi/SessionImplementor;
            9   56     8  expectation  Lorg/hibernate/jdbc/Expectation;
           12   56     9     useBatch  Z
           18   56    10     callable  Z
           24   25    11       insert  Ljava/sql/PreparedStatement;
           30   48    11       insert  Ljava/sql/PreparedStatement;
           31   37    12        index  I
           39   42    12            e  Ljava/sql/SQLException;
           50   55    11            e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          30    37      38  Class java.sql.SQLException
          30    42      42  any
          18    48      49  Class java.sql.SQLException
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
         Name  Flags
      id       final
      fields   final
      notNull  final
      j        final
      sql      final
      object   final
      session  final

  protected void updateOrInsert(java.io.Serializable, java.lang.Object[], java.lang.Object[], java.lang.Object, boolean[], int, java.lang.Object, java.lang.Object, java.lang.String, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/io/Serializable;[Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Object;[ZILjava/lang/Object;Ljava/lang/Object;Ljava/lang/String;Lorg/hibernate/engine/spi/SessionImplementor;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=11, locals=12, args_size=11
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.io.Serializable id
        start local 2 // java.lang.Object[] fields
        start local 3 // java.lang.Object[] oldFields
        start local 4 // java.lang.Object rowId
        start local 5 // boolean[] includeProperty
        start local 6 // int j
        start local 7 // java.lang.Object oldVersion
        start local 8 // java.lang.Object object
        start local 9 // java.lang.String sql
        start local 10 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 3168
            aload 0 /* this */
            iload 6 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isInverseTable:(I)Z
            ifne 11
         1: .line 3171
            aload 0 /* this */
            iload 6 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isNullableTable:(I)Z
            ifeq 4
            aload 3 /* oldFields */
            ifnull 4
            aload 0 /* this */
            aload 3 /* oldFields */
            iload 6 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isAllNull:([Ljava/lang/Object;I)Z
            ifeq 4
         2: .line 3173
            iconst_0
            istore 11 /* isRowToUpdate */
        start local 11 // boolean isRowToUpdate
         3: .line 3174
            goto 9
        end local 11 // boolean isRowToUpdate
         4: .line 3175
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 6 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isNullableTable:(I)Z
            ifeq 8
            aload 0 /* this */
            aload 2 /* fields */
            iload 6 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isAllNull:([Ljava/lang/Object;I)Z
            ifeq 8
         5: .line 3177
            iconst_1
            istore 11 /* isRowToUpdate */
        start local 11 // boolean isRowToUpdate
         6: .line 3178
            aload 0 /* this */
            aload 1 /* id */
            aload 7 /* oldVersion */
            iload 6 /* j */
            aload 8 /* object */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSQLDeleteStrings:()[Ljava/lang/String;
            iload 6 /* j */
            aaload
            aload 10 /* session */
            aconst_null
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.delete:(Ljava/io/Serializable;Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/String;Lorg/hibernate/engine/spi/SessionImplementor;[Ljava/lang/Object;)V
         7: .line 3179
            goto 9
        end local 11 // boolean isRowToUpdate
         8: .line 3183
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* id */
            aload 2 /* fields */
            aload 3 /* oldFields */
            aload 4 /* rowId */
            aload 5 /* includeProperty */
            iload 6 /* j */
            aload 7 /* oldVersion */
            aload 8 /* object */
            aload 9 /* sql */
            aload 10 /* session */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.update:(Ljava/io/Serializable;[Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Object;[ZILjava/lang/Object;Ljava/lang/Object;Ljava/lang/String;Lorg/hibernate/engine/spi/SessionImplementor;)Z
            istore 11 /* isRowToUpdate */
        start local 11 // boolean isRowToUpdate
         9: .line 3186
      StackMap locals: int
      StackMap stack:
            iload 11 /* isRowToUpdate */
            ifne 11
            aload 0 /* this */
            aload 2 /* fields */
            iload 6 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isAllNull:([Ljava/lang/Object;I)Z
            ifne 11
        10: .line 3190
            aload 0 /* this */
            aload 1 /* id */
            aload 2 /* fields */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyInsertability:()[Z
            iload 6 /* j */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSQLInsertStrings:()[Ljava/lang/String;
            iload 6 /* j */
            aaload
            aload 8 /* object */
            aload 10 /* session */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.insert:(Ljava/io/Serializable;[Ljava/lang/Object;[ZILjava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)V
        end local 11 // boolean isRowToUpdate
        11: .line 3195
      StackMap locals:
      StackMap stack:
            return
        end local 10 // org.hibernate.engine.spi.SessionImplementor session
        end local 9 // java.lang.String sql
        end local 8 // java.lang.Object object
        end local 7 // java.lang.Object oldVersion
        end local 6 // int j
        end local 5 // boolean[] includeProperty
        end local 4 // java.lang.Object rowId
        end local 3 // java.lang.Object[] oldFields
        end local 2 // java.lang.Object[] fields
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   12     0             this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   12     1               id  Ljava/io/Serializable;
            0   12     2           fields  [Ljava/lang/Object;
            0   12     3        oldFields  [Ljava/lang/Object;
            0   12     4            rowId  Ljava/lang/Object;
            0   12     5  includeProperty  [Z
            0   12     6                j  I
            0   12     7       oldVersion  Ljava/lang/Object;
            0   12     8           object  Ljava/lang/Object;
            0   12     9              sql  Ljava/lang/String;
            0   12    10          session  Lorg/hibernate/engine/spi/SessionImplementor;
            3    4    11    isRowToUpdate  Z
            6    8    11    isRowToUpdate  Z
            9   11    11    isRowToUpdate  Z
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                 Name  Flags
      id               final
      fields           final
      oldFields        final
      rowId            final
      includeProperty  final
      j                final
      oldVersion       final
      object           final
      sql              final
      session          final

  protected boolean update(java.io.Serializable, java.lang.Object[], java.lang.Object[], java.lang.Object, boolean[], int, java.lang.Object, java.lang.Object, java.lang.String, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/io/Serializable;[Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Object;[ZILjava/lang/Object;Ljava/lang/Object;Ljava/lang/String;Lorg/hibernate/engine/spi/SessionImplementor;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=11, locals=25, args_size=11
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.io.Serializable id
        start local 2 // java.lang.Object[] fields
        start local 3 // java.lang.Object[] oldFields
        start local 4 // java.lang.Object rowId
        start local 5 // boolean[] includeProperty
        start local 6 // int j
        start local 7 // java.lang.Object oldVersion
        start local 8 // java.lang.Object object
        start local 9 // java.lang.String sql
        start local 10 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 3211
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.updateResultCheckStyles:[Lorg/hibernate/engine/spi/ExecuteUpdateResultCheckStyle;
            iload 6 /* j */
            aaload
            invokestatic org.hibernate.jdbc.Expectations.appropriateExpectation:(Lorg/hibernate/engine/spi/ExecuteUpdateResultCheckStyle;)Lorg/hibernate/jdbc/Expectation;
            astore 11 /* expectation */
        start local 11 // org.hibernate.jdbc.Expectation expectation
         1: .line 3212
            iload 6 /* j */
            ifne 2
            aload 11 /* expectation */
            invokeinterface org.hibernate.jdbc.Expectation.canBeBatched:()Z
            ifeq 2
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isBatchable:()Z
            ifeq 2
            iconst_1
            goto 3
      StackMap locals: org.hibernate.jdbc.Expectation
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: istore 12 /* useBatch */
        start local 12 // boolean useBatch
         4: .line 3213
            iload 12 /* useBatch */
            ifeq 9
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.updateBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
            ifnonnull 9
         5: .line 3214
            aload 0 /* this */
            new org.hibernate.engine.jdbc.batch.internal.BasicBatchKey
            dup
         6: .line 3215
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "#UPDATE"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 3216
            aload 11 /* expectation */
            invokespecial org.hibernate.engine.jdbc.batch.internal.BasicBatchKey.<init>:(Ljava/lang/String;Lorg/hibernate/jdbc/Expectation;)V
         8: .line 3214
            putfield org.hibernate.persister.entity.AbstractEntityPersister.updateBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
         9: .line 3219
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 6 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isUpdateCallable:(I)Z
            istore 13 /* callable */
        start local 13 // boolean callable
        10: .line 3220
            iload 6 /* j */
            ifne 11
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifeq 11
            iconst_1
            goto 12
      StackMap locals: int
      StackMap stack:
        11: iconst_0
      StackMap locals:
      StackMap stack: int
        12: istore 14 /* useVersion */
        start local 14 // boolean useVersion
        13: .line 3222
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 17
        14: .line 3223
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Updating entity: {0}"
            aload 0 /* this */
            aload 1 /* id */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracev:(Ljava/lang/String;Ljava/lang/Object;)V
        15: .line 3224
            iload 14 /* useVersion */
            ifeq 17
        16: .line 3225
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Existing version: {0} -> New version:{1}"
            aload 7 /* oldVersion */
            aload 2 /* fields */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionProperty:()I
            aaload
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracev:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        17: .line 3229
      StackMap locals: int
      StackMap stack:
            iconst_1
            istore 15 /* index */
        start local 15 // int index
        18: .line 3231
            iload 12 /* useBatch */
            ifeq 25
        19: .line 3232
            aload 10 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
        20: .line 3233
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        21: .line 3234
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.updateBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getBatch:(Lorg/hibernate/engine/jdbc/batch/spi/BatchKey;)Lorg/hibernate/engine/jdbc/batch/spi/Batch;
        22: .line 3235
            aload 9 /* sql */
            iload 13 /* callable */
            invokeinterface org.hibernate.engine.jdbc.batch.spi.Batch.getBatchStatement:(Ljava/lang/String;Z)Ljava/sql/PreparedStatement;
        23: .line 3232
            astore 16 /* update */
        start local 16 // java.sql.PreparedStatement update
        24: .line 3236
            goto 30
        end local 16 // java.sql.PreparedStatement update
        25: .line 3238
      StackMap locals: int
      StackMap stack:
            aload 10 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
        26: .line 3239
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        27: .line 3240
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
        28: .line 3241
            aload 9 /* sql */
            iload 13 /* callable */
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;Z)Ljava/sql/PreparedStatement;
        29: .line 3238
            astore 16 /* update */
        start local 16 // java.sql.PreparedStatement update
        30: .line 3245
      StackMap locals: java.sql.PreparedStatement
      StackMap stack:
            iload 15 /* index */
            aload 11 /* expectation */
            aload 16 /* update */
            invokeinterface org.hibernate.jdbc.Expectation.prepare:(Ljava/sql/PreparedStatement;)I
            iadd
            istore 15 /* index */
        31: .line 3248
            aload 0 /* this */
            aload 1 /* id */
            aload 2 /* fields */
            aload 4 /* rowId */
            aload 5 /* includeProperty */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnUpdateable:[[Z
            iload 6 /* j */
            aload 16 /* update */
            aload 10 /* session */
            iload 15 /* index */
            iconst_1
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.dehydrate:(Ljava/io/Serializable;[Ljava/lang/Object;Ljava/lang/Object;[Z[[ZILjava/sql/PreparedStatement;Lorg/hibernate/engine/spi/SessionImplementor;IZ)I
            istore 15 /* index */
        32: .line 3251
            iload 14 /* useVersion */
            ifeq 36
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getOptimisticLockStyle:()Lorg/hibernate/engine/OptimisticLockStyle;
            getstatic org.hibernate.engine.OptimisticLockStyle.VERSION:Lorg/hibernate/engine/OptimisticLockStyle;
            if_acmpne 36
        33: .line 3252
            aload 0 /* this */
            aload 5 /* includeProperty */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.checkVersion:([Z)Z
            ifeq 63
        34: .line 3253
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionType:()Lorg/hibernate/type/VersionType;
            aload 16 /* update */
            aload 7 /* oldVersion */
            iload 15 /* index */
            aload 10 /* session */
            invokeinterface org.hibernate.type.VersionType.nullSafeSet:(Ljava/sql/PreparedStatement;Ljava/lang/Object;ILorg/hibernate/engine/spi/SessionImplementor;)V
        35: .line 3255
            goto 63
        36: .line 3256
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isAllOrDirtyOptLocking:()Z
            ifeq 63
            aload 3 /* oldFields */
            ifnull 63
        37: .line 3257
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyVersionability:()[Z
            astore 17 /* versionability */
        start local 17 // boolean[] versionability
        38: .line 3258
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getOptimisticLockStyle:()Lorg/hibernate/engine/OptimisticLockStyle;
            getstatic org.hibernate.engine.OptimisticLockStyle.ALL:Lorg/hibernate/engine/OptimisticLockStyle;
            if_acmpne 40
        39: .line 3259
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyUpdateability:()[Z
            goto 41
        40: .line 3260
      StackMap locals: boolean[]
      StackMap stack:
            aload 5 /* includeProperty */
        41: .line 3258
      StackMap locals:
      StackMap stack: boolean[]
            astore 18 /* includeOldField */
        start local 18 // boolean[] includeOldField
        42: .line 3261
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyTypes:()[Lorg/hibernate/type/Type;
            astore 19 /* types */
        start local 19 // org.hibernate.type.Type[] types
        43: .line 3262
            iconst_0
            istore 20 /* i */
        start local 20 // int i
        44: goto 62
        45: .line 3263
      StackMap locals: boolean[] org.hibernate.type.Type[] int
      StackMap stack:
            aload 18 /* includeOldField */
            iload 20 /* i */
            baload
            ifeq 49
        46: .line 3264
            aload 0 /* this */
            iload 20 /* i */
            iload 6 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isPropertyOfTable:(II)Z
            ifeq 49
        47: .line 3265
            aload 17 /* versionability */
            iload 20 /* i */
            baload
            ifeq 49
        48: .line 3263
            iconst_1
            goto 50
      StackMap locals:
      StackMap stack:
        49: iconst_0
      StackMap locals:
      StackMap stack: int
        50: istore 21 /* include */
        start local 21 // boolean include
        51: .line 3266
            iload 21 /* include */
            ifeq 61
        52: .line 3267
            aload 19 /* types */
            iload 20 /* i */
            aaload
            aload 3 /* oldFields */
            iload 20 /* i */
            aaload
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.type.Type.toColumnNullness:(Ljava/lang/Object;Lorg/hibernate/engine/spi/Mapping;)[Z
            astore 22 /* settable */
        start local 22 // boolean[] settable
        53: .line 3268
            aload 19 /* types */
            iload 20 /* i */
            aaload
        54: .line 3269
            aload 16 /* update */
        55: .line 3270
            aload 3 /* oldFields */
            iload 20 /* i */
            aaload
        56: .line 3271
            iload 15 /* index */
        57: .line 3272
            aload 22 /* settable */
        58: .line 3273
            aload 10 /* session */
        59: .line 3268
            invokeinterface org.hibernate.type.Type.nullSafeSet:(Ljava/sql/PreparedStatement;Ljava/lang/Object;I[ZLorg/hibernate/engine/spi/SessionImplementor;)V
        60: .line 3275
            iload 15 /* index */
            aload 22 /* settable */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.countTrue:([Z)I
            iadd
            istore 15 /* index */
        end local 22 // boolean[] settable
        end local 21 // boolean include
        61: .line 3262
      StackMap locals:
      StackMap stack:
            iinc 20 /* i */ 1
      StackMap locals:
      StackMap stack:
        62: iload 20 /* i */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertySpan:()I
            if_icmplt 45
        end local 20 // int i
        end local 19 // org.hibernate.type.Type[] types
        end local 18 // boolean[] includeOldField
        end local 17 // boolean[] versionability
        63: .line 3280
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] java.lang.Object[] java.lang.Object boolean[] int java.lang.Object java.lang.Object java.lang.String org.hibernate.engine.spi.SessionImplementor org.hibernate.jdbc.Expectation int int int int java.sql.PreparedStatement
      StackMap stack:
            iload 12 /* useBatch */
            ifeq 68
        64: .line 3281
            aload 10 /* 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 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.updateBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getBatch:(Lorg/hibernate/engine/jdbc/batch/spi/BatchKey;)Lorg/hibernate/engine/jdbc/batch/spi/Batch;
            invokeinterface org.hibernate.engine.jdbc.batch.spi.Batch.addToBatch:()V
        65: .line 3296
            iload 12 /* useBatch */
            ifne 67
        66: .line 3297
            aload 10 /* 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 16 /* update */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        67: .line 3282
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        68: .line 3285
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 10 /* 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 16 /* update */
            invokeinterface org.hibernate.engine.jdbc.spi.ResultSetReturn.executeUpdate:(Ljava/sql/PreparedStatement;)I
            aload 1 /* id */
            iload 6 /* j */
            aload 11 /* expectation */
            aload 16 /* update */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.check:(ILjava/io/Serializable;ILorg/hibernate/jdbc/Expectation;Ljava/sql/PreparedStatement;)Z
            istore 24
        69: .line 3296
            iload 12 /* useBatch */
            ifne 71
        70: .line 3297
            aload 10 /* 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 16 /* update */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        71: .line 3285
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] java.lang.Object[] java.lang.Object boolean[] int java.lang.Object java.lang.Object java.lang.String org.hibernate.engine.spi.SessionImplementor org.hibernate.jdbc.Expectation int int int int java.sql.PreparedStatement top top top top top top top int
      StackMap stack:
            iload 24
            ireturn
        72: .line 3289
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] java.lang.Object[] java.lang.Object boolean[] int java.lang.Object java.lang.Object java.lang.String org.hibernate.engine.spi.SessionImplementor org.hibernate.jdbc.Expectation int int int int java.sql.PreparedStatement
      StackMap stack: java.sql.SQLException
            astore 17 /* e */
        start local 17 // java.sql.SQLException e
        73: .line 3290
            iload 12 /* useBatch */
            ifeq 75
        74: .line 3291
            aload 10 /* 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.abortBatch:()V
        75: .line 3293
      StackMap locals: java.sql.SQLException
      StackMap stack:
            aload 17 /* e */
            athrow
        end local 17 // java.sql.SQLException e
        76: .line 3295
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] java.lang.Object[] java.lang.Object boolean[] int java.lang.Object java.lang.Object java.lang.String org.hibernate.engine.spi.SessionImplementor org.hibernate.jdbc.Expectation int int int int java.sql.PreparedStatement
      StackMap stack: java.lang.Throwable
            astore 23
        77: .line 3296
            iload 12 /* useBatch */
            ifne 79
        78: .line 3297
            aload 10 /* 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 16 /* update */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        79: .line 3299
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] java.lang.Object[] java.lang.Object boolean[] int java.lang.Object java.lang.Object java.lang.String org.hibernate.engine.spi.SessionImplementor org.hibernate.jdbc.Expectation int int int int java.sql.PreparedStatement top top top top top top java.lang.Throwable
      StackMap stack:
            aload 23
            athrow
        end local 16 // java.sql.PreparedStatement update
        end local 15 // int index
        80: .line 3302
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] java.lang.Object[] java.lang.Object boolean[] int java.lang.Object java.lang.Object java.lang.String org.hibernate.engine.spi.SessionImplementor org.hibernate.jdbc.Expectation int int int
      StackMap stack: java.sql.SQLException
            astore 15 /* e */
        start local 15 // java.sql.SQLException e
        81: .line 3303
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSQLExceptionHelper:()Lorg/hibernate/engine/jdbc/spi/SqlExceptionHelper;
        82: .line 3304
            aload 15 /* e */
        83: .line 3305
            new java.lang.StringBuilder
            dup
            ldc "could not update: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            aload 1 /* id */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        84: .line 3306
            aload 9 /* sql */
        85: .line 3303
            invokevirtual org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert:(Ljava/sql/SQLException;Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/JDBCException;
            athrow
        end local 15 // java.sql.SQLException e
        end local 14 // boolean useVersion
        end local 13 // boolean callable
        end local 12 // boolean useBatch
        end local 11 // org.hibernate.jdbc.Expectation expectation
        end local 10 // org.hibernate.engine.spi.SessionImplementor session
        end local 9 // java.lang.String sql
        end local 8 // java.lang.Object object
        end local 7 // java.lang.Object oldVersion
        end local 6 // int j
        end local 5 // boolean[] includeProperty
        end local 4 // java.lang.Object rowId
        end local 3 // java.lang.Object[] oldFields
        end local 2 // java.lang.Object[] fields
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   86     0             this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   86     1               id  Ljava/io/Serializable;
            0   86     2           fields  [Ljava/lang/Object;
            0   86     3        oldFields  [Ljava/lang/Object;
            0   86     4            rowId  Ljava/lang/Object;
            0   86     5  includeProperty  [Z
            0   86     6                j  I
            0   86     7       oldVersion  Ljava/lang/Object;
            0   86     8           object  Ljava/lang/Object;
            0   86     9              sql  Ljava/lang/String;
            0   86    10          session  Lorg/hibernate/engine/spi/SessionImplementor;
            1   86    11      expectation  Lorg/hibernate/jdbc/Expectation;
            4   86    12         useBatch  Z
           10   86    13         callable  Z
           13   86    14       useVersion  Z
           18   80    15            index  I
           24   25    16           update  Ljava/sql/PreparedStatement;
           30   80    16           update  Ljava/sql/PreparedStatement;
           38   63    17   versionability  [Z
           42   63    18  includeOldField  [Z
           43   63    19            types  [Lorg/hibernate/type/Type;
           44   63    20                i  I
           51   61    21          include  Z
           53   61    22         settable  [Z
           73   76    17                e  Ljava/sql/SQLException;
           81   86    15                e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          30    65      72  Class java.sql.SQLException
          68    69      72  Class java.sql.SQLException
          30    65      76  any
          68    69      76  any
          72    76      76  any
          17    67      80  Class java.sql.SQLException
          68    71      80  Class java.sql.SQLException
          72    80      80  Class java.sql.SQLException
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                 Name  Flags
      id               final
      fields           final
      oldFields        final
      rowId            final
      includeProperty  final
      j                final
      oldVersion       final
      object           final
      sql              final
      session          final

  protected void delete(java.io.Serializable, java.lang.Object, int, java.lang.Object, java.lang.String, org.hibernate.engine.spi.SessionImplementor, java.lang.Object[]);
    descriptor: (Ljava/io/Serializable;Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/String;Lorg/hibernate/engine/spi/SessionImplementor;[Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=20, args_size=8
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.io.Serializable id
        start local 2 // java.lang.Object version
        start local 3 // int j
        start local 4 // java.lang.Object object
        start local 5 // java.lang.String sql
        start local 6 // org.hibernate.engine.spi.SessionImplementor session
        start local 7 // java.lang.Object[] loadedState
         0: .line 3325
            aload 0 /* this */
            iload 3 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isInverseTable:(I)Z
            ifeq 2
         1: .line 3326
            return
         2: .line 3329
      StackMap locals:
      StackMap stack:
            iload 3 /* j */
            ifne 3
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifeq 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: istore 8 /* useVersion */
        start local 8 // boolean useVersion
         5: .line 3330
            aload 0 /* this */
            iload 3 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isDeleteCallable:(I)Z
            istore 9 /* callable */
        start local 9 // boolean callable
         6: .line 3331
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.deleteResultCheckStyles:[Lorg/hibernate/engine/spi/ExecuteUpdateResultCheckStyle;
            iload 3 /* j */
            aaload
            invokestatic org.hibernate.jdbc.Expectations.appropriateExpectation:(Lorg/hibernate/engine/spi/ExecuteUpdateResultCheckStyle;)Lorg/hibernate/jdbc/Expectation;
            astore 10 /* expectation */
        start local 10 // org.hibernate.jdbc.Expectation expectation
         7: .line 3332
            iload 3 /* j */
            ifne 8
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isBatchable:()Z
            ifeq 8
            aload 10 /* expectation */
            invokeinterface org.hibernate.jdbc.Expectation.canBeBatched:()Z
            ifeq 8
            iconst_1
            goto 9
      StackMap locals: int int org.hibernate.jdbc.Expectation
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: istore 11 /* useBatch */
        start local 11 // boolean useBatch
        10: .line 3333
            iload 11 /* useBatch */
            ifeq 15
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.deleteBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
            ifnonnull 15
        11: .line 3334
            aload 0 /* this */
            new org.hibernate.engine.jdbc.batch.internal.BasicBatchKey
            dup
        12: .line 3335
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "#DELETE"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 3336
            aload 10 /* expectation */
            invokespecial org.hibernate.engine.jdbc.batch.internal.BasicBatchKey.<init>:(Ljava/lang/String;Lorg/hibernate/jdbc/Expectation;)V
        14: .line 3334
            putfield org.hibernate.persister.entity.AbstractEntityPersister.deleteBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
        15: .line 3340
      StackMap locals: int
      StackMap stack:
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            istore 12 /* traceEnabled */
        start local 12 // boolean traceEnabled
        16: .line 3341
            iload 12 /* traceEnabled */
            ifeq 20
        17: .line 3342
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Deleting entity: {0}"
            aload 0 /* this */
            aload 1 /* id */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracev:(Ljava/lang/String;Ljava/lang/Object;)V
        18: .line 3343
            iload 8 /* useVersion */
            ifeq 20
        19: .line 3344
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Version: {0}"
            aload 2 /* version */
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracev:(Ljava/lang/String;Ljava/lang/Object;)V
        20: .line 3347
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 3 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isTableCascadeDeleteEnabled:(I)Z
            ifeq 24
        21: .line 3348
            iload 12 /* traceEnabled */
            ifeq 23
        22: .line 3349
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Delete handled by foreign key constraint: {0}"
            aload 0 /* this */
            iload 3 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableName:(I)Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracev:(Ljava/lang/String;Ljava/lang/Object;)V
        23: .line 3351
      StackMap locals:
      StackMap stack:
            return
        24: .line 3357
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 14 /* index */
        start local 14 // int index
        25: .line 3358
            iload 11 /* useBatch */
            ifeq 32
        26: .line 3359
            aload 6 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
        27: .line 3360
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        28: .line 3361
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.deleteBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getBatch:(Lorg/hibernate/engine/jdbc/batch/spi/BatchKey;)Lorg/hibernate/engine/jdbc/batch/spi/Batch;
        29: .line 3362
            aload 5 /* sql */
            iload 9 /* callable */
            invokeinterface org.hibernate.engine.jdbc.batch.spi.Batch.getBatchStatement:(Ljava/lang/String;Z)Ljava/sql/PreparedStatement;
        30: .line 3359
            astore 13 /* delete */
        start local 13 // java.sql.PreparedStatement delete
        31: .line 3363
            goto 37
        end local 13 // java.sql.PreparedStatement delete
        32: .line 3365
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object int java.lang.Object java.lang.String org.hibernate.engine.spi.SessionImplementor java.lang.Object[] int int org.hibernate.jdbc.Expectation int int top int
      StackMap stack:
            aload 6 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
        33: .line 3366
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        34: .line 3367
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
        35: .line 3368
            aload 5 /* sql */
            iload 9 /* callable */
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;Z)Ljava/sql/PreparedStatement;
        36: .line 3365
            astore 13 /* delete */
        start local 13 // java.sql.PreparedStatement delete
        37: .line 3373
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object int java.lang.Object java.lang.String org.hibernate.engine.spi.SessionImplementor java.lang.Object[] int int org.hibernate.jdbc.Expectation int int java.sql.PreparedStatement int
      StackMap stack:
            iload 14 /* index */
            aload 10 /* expectation */
            aload 13 /* delete */
            invokeinterface org.hibernate.jdbc.Expectation.prepare:(Ljava/sql/PreparedStatement;)I
            iadd
            istore 14 /* index */
        38: .line 3377
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            aload 13 /* delete */
            aload 1 /* id */
            iload 14 /* index */
            aload 6 /* session */
            invokeinterface org.hibernate.type.Type.nullSafeSet:(Ljava/sql/PreparedStatement;Ljava/lang/Object;ILorg/hibernate/engine/spi/SessionImplementor;)V
        39: .line 3378
            iload 14 /* index */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnSpan:()I
            iadd
            istore 14 /* index */
        40: .line 3382
            iload 8 /* useVersion */
            ifeq 43
        41: .line 3383
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionType:()Lorg/hibernate/type/VersionType;
            aload 13 /* delete */
            aload 2 /* version */
            iload 14 /* index */
            aload 6 /* session */
            invokeinterface org.hibernate.type.VersionType.nullSafeSet:(Ljava/sql/PreparedStatement;Ljava/lang/Object;ILorg/hibernate/engine/spi/SessionImplementor;)V
        42: .line 3384
            goto 54
        43: .line 3385
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isAllOrDirtyOptLocking:()Z
            ifeq 54
            aload 7 /* loadedState */
            ifnull 54
        44: .line 3386
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyVersionability:()[Z
            astore 15 /* versionability */
        start local 15 // boolean[] versionability
        45: .line 3387
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyTypes:()[Lorg/hibernate/type/Type;
            astore 16 /* types */
        start local 16 // org.hibernate.type.Type[] types
        46: .line 3388
            iconst_0
            istore 17 /* i */
        start local 17 // int i
        47: goto 53
        48: .line 3389
      StackMap locals: boolean[] org.hibernate.type.Type[] int
      StackMap stack:
            aload 0 /* this */
            iload 17 /* i */
            iload 3 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isPropertyOfTable:(II)Z
            ifeq 52
            aload 15 /* versionability */
            iload 17 /* i */
            baload
            ifeq 52
        49: .line 3392
            aload 16 /* types */
            iload 17 /* i */
            aaload
            aload 7 /* loadedState */
            iload 17 /* i */
            aaload
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.type.Type.toColumnNullness:(Ljava/lang/Object;Lorg/hibernate/engine/spi/Mapping;)[Z
            astore 18 /* settable */
        start local 18 // boolean[] settable
        50: .line 3393
            aload 16 /* types */
            iload 17 /* i */
            aaload
            aload 13 /* delete */
            aload 7 /* loadedState */
            iload 17 /* i */
            aaload
            iload 14 /* index */
            aload 18 /* settable */
            aload 6 /* session */
            invokeinterface org.hibernate.type.Type.nullSafeSet:(Ljava/sql/PreparedStatement;Ljava/lang/Object;I[ZLorg/hibernate/engine/spi/SessionImplementor;)V
        51: .line 3394
            iload 14 /* index */
            aload 18 /* settable */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.countTrue:([Z)I
            iadd
            istore 14 /* index */
        end local 18 // boolean[] settable
        52: .line 3388
      StackMap locals:
      StackMap stack:
            iinc 17 /* i */ 1
      StackMap locals:
      StackMap stack:
        53: iload 17 /* i */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertySpan:()I
            if_icmplt 48
        end local 17 // int i
        end local 16 // org.hibernate.type.Type[] types
        end local 15 // boolean[] versionability
        54: .line 3399
      StackMap locals:
      StackMap stack:
            iload 11 /* useBatch */
            ifeq 57
        55: .line 3400
            aload 6 /* 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 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.deleteBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getBatch:(Lorg/hibernate/engine/jdbc/batch/spi/BatchKey;)Lorg/hibernate/engine/jdbc/batch/spi/Batch;
            invokeinterface org.hibernate.engine.jdbc.batch.spi.Batch.addToBatch:()V
        56: .line 3401
            goto 67
        57: .line 3403
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* 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 13 /* delete */
            invokeinterface org.hibernate.engine.jdbc.spi.ResultSetReturn.executeUpdate:(Ljava/sql/PreparedStatement;)I
            aload 1 /* id */
            iload 3 /* j */
            aload 10 /* expectation */
            aload 13 /* delete */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.check:(ILjava/io/Serializable;ILorg/hibernate/jdbc/Expectation;Ljava/sql/PreparedStatement;)Z
            pop
        58: .line 3406
            goto 67
        59: .line 3407
      StackMap locals:
      StackMap stack: java.sql.SQLException
            astore 15 /* sqle */
        start local 15 // java.sql.SQLException sqle
        60: .line 3408
            iload 11 /* useBatch */
            ifeq 62
        61: .line 3409
            aload 6 /* 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.abortBatch:()V
        62: .line 3411
      StackMap locals: java.sql.SQLException
      StackMap stack:
            aload 15 /* sqle */
            athrow
        end local 15 // java.sql.SQLException sqle
        63: .line 3413
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object int java.lang.Object java.lang.String org.hibernate.engine.spi.SessionImplementor java.lang.Object[] int int org.hibernate.jdbc.Expectation int int java.sql.PreparedStatement int
      StackMap stack: java.lang.Throwable
            astore 19
        64: .line 3414
            iload 11 /* useBatch */
            ifne 66
        65: .line 3415
            aload 6 /* 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 13 /* delete */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        66: .line 3417
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object int java.lang.Object java.lang.String org.hibernate.engine.spi.SessionImplementor java.lang.Object[] int int org.hibernate.jdbc.Expectation int int java.sql.PreparedStatement int top top top top java.lang.Throwable
      StackMap stack:
            aload 19
            athrow
        67: .line 3414
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object int java.lang.Object java.lang.String org.hibernate.engine.spi.SessionImplementor java.lang.Object[] int int org.hibernate.jdbc.Expectation int int java.sql.PreparedStatement int
      StackMap stack:
            iload 11 /* useBatch */
            ifne 78
        68: .line 3415
            aload 6 /* 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 13 /* delete */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        end local 14 // int index
        end local 13 // java.sql.PreparedStatement delete
        69: .line 3419
            goto 78
        70: .line 3420
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object int java.lang.Object java.lang.String org.hibernate.engine.spi.SessionImplementor java.lang.Object[] int int org.hibernate.jdbc.Expectation int int
      StackMap stack: java.sql.SQLException
            astore 13 /* sqle */
        start local 13 // java.sql.SQLException sqle
        71: .line 3421
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSQLExceptionHelper:()Lorg/hibernate/engine/jdbc/spi/SqlExceptionHelper;
        72: .line 3422
            aload 13 /* sqle */
        73: .line 3423
            new java.lang.StringBuilder
            dup
            ldc "could not delete: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        74: .line 3424
            aload 0 /* this */
            aload 1 /* id */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        75: .line 3423
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        76: .line 3425
            aload 5 /* sql */
        77: .line 3421
            invokevirtual org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert:(Ljava/sql/SQLException;Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/JDBCException;
            athrow
        end local 13 // java.sql.SQLException sqle
        78: .line 3430
      StackMap locals:
      StackMap stack:
            return
        end local 12 // boolean traceEnabled
        end local 11 // boolean useBatch
        end local 10 // org.hibernate.jdbc.Expectation expectation
        end local 9 // boolean callable
        end local 8 // boolean useVersion
        end local 7 // java.lang.Object[] loadedState
        end local 6 // org.hibernate.engine.spi.SessionImplementor session
        end local 5 // java.lang.String sql
        end local 4 // java.lang.Object object
        end local 3 // int j
        end local 2 // java.lang.Object version
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   79     0            this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   79     1              id  Ljava/io/Serializable;
            0   79     2         version  Ljava/lang/Object;
            0   79     3               j  I
            0   79     4          object  Ljava/lang/Object;
            0   79     5             sql  Ljava/lang/String;
            0   79     6         session  Lorg/hibernate/engine/spi/SessionImplementor;
            0   79     7     loadedState  [Ljava/lang/Object;
            5   79     8      useVersion  Z
            6   79     9        callable  Z
            7   79    10     expectation  Lorg/hibernate/jdbc/Expectation;
           10   79    11        useBatch  Z
           16   79    12    traceEnabled  Z
           31   32    13          delete  Ljava/sql/PreparedStatement;
           37   69    13          delete  Ljava/sql/PreparedStatement;
           25   69    14           index  I
           45   54    15  versionability  [Z
           46   54    16           types  [Lorg/hibernate/type/Type;
           47   54    17               i  I
           50   52    18        settable  [Z
           60   63    15            sqle  Ljava/sql/SQLException;
           71   78    13            sqle  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          37    58      59  Class java.sql.SQLException
          37    63      63  any
          24    69      70  Class java.sql.SQLException
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
             Name  Flags
      id           final
      version      final
      j            final
      object       final
      sql          final
      session      final
      loadedState  final

  private java.lang.String[] getUpdateStrings(boolean, boolean);
    descriptor: (ZZ)[Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // boolean byRowId
        start local 2 // boolean lazy
         0: .line 3433
            iload 1 /* byRowId */
            ifeq 4
         1: .line 3434
            iload 2 /* lazy */
            ifeq 2
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSQLLazyUpdateByRowIdStrings:()[Ljava/lang/String;
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSQLUpdateByRowIdStrings:()[Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String[]
         3: areturn
         4: .line 3437
      StackMap locals:
      StackMap stack:
            iload 2 /* lazy */
            ifeq 5
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSQLLazyUpdateStrings:()[Ljava/lang/String;
            goto 6
      StackMap locals:
      StackMap stack:
         5: aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSQLUpdateStrings:()[Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String[]
         6: areturn
        end local 2 // boolean lazy
        end local 1 // boolean byRowId
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    7     1  byRowId  Z
            0    7     2     lazy  Z
    MethodParameters:
         Name  Flags
      byRowId  
      lazy     

  public void update(java.io.Serializable, java.lang.Object[], int[], boolean, java.lang.Object[], java.lang.Object, java.lang.Object, java.lang.Object, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/io/Serializable;[Ljava/lang/Object;[IZ[Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=16, args_size=10
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.io.Serializable id
        start local 2 // java.lang.Object[] fields
        start local 3 // int[] dirtyFields
        start local 4 // boolean hasDirtyCollection
        start local 5 // java.lang.Object[] oldFields
        start local 6 // java.lang.Object oldVersion
        start local 7 // java.lang.Object object
        start local 8 // java.lang.Object rowId
        start local 9 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 3456
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityMetamodel:()Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.hasPreUpdateGeneratedValues:()Z
            ifeq 9
         1: .line 3457
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityMetamodel:()Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getInMemoryValueGenerationStrategies:()[Lorg/hibernate/tuple/InMemoryValueGenerationStrategy;
            astore 10 /* strategies */
        start local 10 // org.hibernate.tuple.InMemoryValueGenerationStrategy[] strategies
         2: .line 3458
            iconst_0
            istore 11 /* i */
        start local 11 // int i
         3: goto 8
         4: .line 3459
      StackMap locals: org.hibernate.tuple.InMemoryValueGenerationStrategy[] int
      StackMap stack:
            aload 10 /* strategies */
            iload 11 /* i */
            aaload
            ifnull 7
            aload 10 /* strategies */
            iload 11 /* i */
            aaload
            invokeinterface org.hibernate.tuple.InMemoryValueGenerationStrategy.getGenerationTiming:()Lorg/hibernate/tuple/GenerationTiming;
            invokevirtual org.hibernate.tuple.GenerationTiming.includesUpdate:()Z
            ifeq 7
         5: .line 3460
            aload 2 /* fields */
            iload 11 /* i */
            aload 10 /* strategies */
            iload 11 /* i */
            aaload
            invokeinterface org.hibernate.tuple.InMemoryValueGenerationStrategy.getValueGenerator:()Lorg/hibernate/tuple/ValueGenerator;
            aload 9 /* session */
            checkcast org.hibernate.Session
            aload 7 /* object */
            invokeinterface org.hibernate.tuple.ValueGenerator.generateValue:(Lorg/hibernate/Session;Ljava/lang/Object;)Ljava/lang/Object;
            aastore
         6: .line 3461
            aload 0 /* this */
            aload 7 /* object */
            iload 11 /* i */
            aload 2 /* fields */
            iload 11 /* i */
            aaload
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValue:(Ljava/lang/Object;ILjava/lang/Object;)V
         7: .line 3458
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 11 /* i */
            aload 10 /* strategies */
            arraylength
            if_icmplt 4
        end local 11 // int i
        end local 10 // org.hibernate.tuple.InMemoryValueGenerationStrategy[] strategies
         9: .line 3470
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* dirtyFields */
            iload 4 /* hasDirtyCollection */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableUpdateNeeded:([IZ)[Z
            astore 10 /* tableUpdateNeeded */
        start local 10 // boolean[] tableUpdateNeeded
        10: .line 3471
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableSpan:()I
            istore 11 /* span */
        start local 11 // int span
        11: .line 3475
            aload 9 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getPersistenceContext:()Lorg/hibernate/engine/spi/PersistenceContext;
            aload 7 /* object */
            invokeinterface org.hibernate.engine.spi.PersistenceContext.getEntry:(Ljava/lang/Object;)Lorg/hibernate/engine/spi/EntityEntry;
            astore 14 /* entry */
        start local 14 // org.hibernate.engine.spi.EntityEntry entry
        12: .line 3479
            aload 14 /* entry */
            ifnonnull 14
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isMutable:()Z
            ifne 14
        13: .line 3480
            new java.lang.IllegalStateException
            dup
            ldc "Updating immutable entity that is not in session yet!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 3482
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] int[] int java.lang.Object[] java.lang.Object java.lang.Object java.lang.Object org.hibernate.engine.spi.SessionImplementor boolean[] int top top org.hibernate.engine.spi.EntityEntry
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.isDynamicUpdate:()Z
            ifeq 28
            aload 3 /* dirtyFields */
            ifnull 28
        15: .line 3484
            aload 0 /* this */
            aload 3 /* dirtyFields */
            iload 4 /* hasDirtyCollection */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertiesToUpdate:([IZ)[Z
            astore 12 /* propsToUpdate */
        start local 12 // boolean[] propsToUpdate
        16: .line 3486
            iload 11 /* span */
            anewarray java.lang.String
            astore 13 /* updateStrings */
        start local 13 // java.lang.String[] updateStrings
        17: .line 3487
            iconst_0
            istore 15 /* j */
        start local 15 // int j
        18: goto 26
        19: .line 3488
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] int[] int java.lang.Object[] java.lang.Object java.lang.Object java.lang.Object org.hibernate.engine.spi.SessionImplementor boolean[] int boolean[] java.lang.String[] org.hibernate.engine.spi.EntityEntry int
      StackMap stack:
            aload 13 /* updateStrings */
            iload 15 /* j */
            aload 10 /* tableUpdateNeeded */
            iload 15 /* j */
            baload
            ifeq 23
        20: .line 3489
            aload 0 /* this */
            aload 12 /* propsToUpdate */
            iload 15 /* j */
            aload 5 /* oldFields */
            iload 15 /* j */
            ifne 21
            aload 8 /* rowId */
            ifnull 21
            iconst_1
            goto 22
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] int[] int java.lang.Object[] java.lang.Object java.lang.Object java.lang.Object org.hibernate.engine.spi.SessionImplementor boolean[] int boolean[] java.lang.String[] org.hibernate.engine.spi.EntityEntry int
      StackMap stack: java.lang.String[] int org.hibernate.persister.entity.AbstractEntityPersister boolean[] int java.lang.Object[]
        21: iconst_0
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] int[] int java.lang.Object[] java.lang.Object java.lang.Object java.lang.Object org.hibernate.engine.spi.SessionImplementor boolean[] int boolean[] java.lang.String[] org.hibernate.engine.spi.EntityEntry int
      StackMap stack: java.lang.String[] int org.hibernate.persister.entity.AbstractEntityPersister boolean[] int java.lang.Object[] int
        22: invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateUpdateString:([ZI[Ljava/lang/Object;Z)Ljava/lang/String;
            goto 24
        23: .line 3490
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] int[] int java.lang.Object[] java.lang.Object java.lang.Object java.lang.Object org.hibernate.engine.spi.SessionImplementor boolean[] int boolean[] java.lang.String[] org.hibernate.engine.spi.EntityEntry int
      StackMap stack: java.lang.String[] int
            aconst_null
        24: .line 3488
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] int[] int java.lang.Object[] java.lang.Object java.lang.Object java.lang.Object org.hibernate.engine.spi.SessionImplementor boolean[] int boolean[] java.lang.String[] org.hibernate.engine.spi.EntityEntry int
      StackMap stack: java.lang.String[] int java.lang.String
            aastore
        25: .line 3487
            iinc 15 /* j */ 1
      StackMap locals:
      StackMap stack:
        26: iload 15 /* j */
            iload 11 /* span */
            if_icmplt 19
        end local 15 // int j
        27: .line 3492
            goto 52
        end local 13 // java.lang.String[] updateStrings
        end local 12 // boolean[] propsToUpdate
        28: .line 3493
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] int[] int java.lang.Object[] java.lang.Object java.lang.Object java.lang.Object org.hibernate.engine.spi.SessionImplementor boolean[] int top top org.hibernate.engine.spi.EntityEntry
      StackMap stack:
            aload 0 /* this */
            aload 14 /* entry */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isModifiableEntity:(Lorg/hibernate/engine/spi/EntityEntry;)Z
            ifne 46
        29: .line 3501
            aload 0 /* this */
        30: .line 3502
            aload 3 /* dirtyFields */
            ifnonnull 31
            getstatic org.hibernate.internal.util.collections.ArrayHelper.EMPTY_INT_ARRAY:[I
            goto 32
      StackMap locals:
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister
        31: aload 3 /* dirtyFields */
        32: .line 3503
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] int[] int java.lang.Object[] java.lang.Object java.lang.Object java.lang.Object org.hibernate.engine.spi.SessionImplementor boolean[] int top top org.hibernate.engine.spi.EntityEntry
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister int[]
            iload 4 /* hasDirtyCollection */
        33: .line 3501
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertiesToUpdate:([IZ)[Z
            astore 12 /* propsToUpdate */
        start local 12 // boolean[] propsToUpdate
        34: .line 3506
            iload 11 /* span */
            anewarray java.lang.String
            astore 13 /* updateStrings */
        start local 13 // java.lang.String[] updateStrings
        35: .line 3507
            iconst_0
            istore 15 /* j */
        start local 15 // int j
        36: goto 44
        37: .line 3508
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] int[] int java.lang.Object[] java.lang.Object java.lang.Object java.lang.Object org.hibernate.engine.spi.SessionImplementor boolean[] int boolean[] java.lang.String[] org.hibernate.engine.spi.EntityEntry int
      StackMap stack:
            aload 13 /* updateStrings */
            iload 15 /* j */
            aload 10 /* tableUpdateNeeded */
            iload 15 /* j */
            baload
            ifeq 41
        38: .line 3509
            aload 0 /* this */
            aload 12 /* propsToUpdate */
            iload 15 /* j */
            aload 5 /* oldFields */
            iload 15 /* j */
            ifne 39
            aload 8 /* rowId */
            ifnull 39
            iconst_1
            goto 40
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] int[] int java.lang.Object[] java.lang.Object java.lang.Object java.lang.Object org.hibernate.engine.spi.SessionImplementor boolean[] int boolean[] java.lang.String[] org.hibernate.engine.spi.EntityEntry int
      StackMap stack: java.lang.String[] int org.hibernate.persister.entity.AbstractEntityPersister boolean[] int java.lang.Object[]
        39: iconst_0
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] int[] int java.lang.Object[] java.lang.Object java.lang.Object java.lang.Object org.hibernate.engine.spi.SessionImplementor boolean[] int boolean[] java.lang.String[] org.hibernate.engine.spi.EntityEntry int
      StackMap stack: java.lang.String[] int org.hibernate.persister.entity.AbstractEntityPersister boolean[] int java.lang.Object[] int
        40: invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateUpdateString:([ZI[Ljava/lang/Object;Z)Ljava/lang/String;
            goto 42
        41: .line 3510
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] int[] int java.lang.Object[] java.lang.Object java.lang.Object java.lang.Object org.hibernate.engine.spi.SessionImplementor boolean[] int boolean[] java.lang.String[] org.hibernate.engine.spi.EntityEntry int
      StackMap stack: java.lang.String[] int
            aconst_null
        42: .line 3508
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] int[] int java.lang.Object[] java.lang.Object java.lang.Object java.lang.Object org.hibernate.engine.spi.SessionImplementor boolean[] int boolean[] java.lang.String[] org.hibernate.engine.spi.EntityEntry int
      StackMap stack: java.lang.String[] int java.lang.String
            aastore
        43: .line 3507
            iinc 15 /* j */ 1
      StackMap locals:
      StackMap stack:
        44: iload 15 /* j */
            iload 11 /* span */
            if_icmplt 37
        end local 15 // int j
        45: .line 3512
            goto 52
        end local 13 // java.lang.String[] updateStrings
        end local 12 // boolean[] propsToUpdate
        46: .line 3515
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] int[] int java.lang.Object[] java.lang.Object java.lang.Object java.lang.Object org.hibernate.engine.spi.SessionImplementor boolean[] int top top org.hibernate.engine.spi.EntityEntry
      StackMap stack:
            aload 0 /* this */
        47: .line 3516
            aload 8 /* rowId */
            ifnull 48
            iconst_1
            goto 49
      StackMap locals:
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister
        48: iconst_0
        49: .line 3517
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] int[] int java.lang.Object[] java.lang.Object java.lang.Object java.lang.Object org.hibernate.engine.spi.SessionImplementor boolean[] int top top org.hibernate.engine.spi.EntityEntry
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister int
            aload 0 /* this */
            aload 7 /* object */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasUninitializedLazyProperties:(Ljava/lang/Object;)Z
        50: .line 3515
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getUpdateStrings:(ZZ)[Ljava/lang/String;
            astore 13 /* updateStrings */
        start local 13 // java.lang.String[] updateStrings
        51: .line 3519
            aload 0 /* this */
            aload 7 /* object */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyUpdateability:(Ljava/lang/Object;)[Z
            astore 12 /* propsToUpdate */
        start local 12 // boolean[] propsToUpdate
        52: .line 3522
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] int[] int java.lang.Object[] java.lang.Object java.lang.Object java.lang.Object org.hibernate.engine.spi.SessionImplementor boolean[] int boolean[] java.lang.String[] org.hibernate.engine.spi.EntityEntry
      StackMap stack:
            iconst_0
            istore 15 /* j */
        start local 15 // int j
        53: goto 69
        54: .line 3524
      StackMap locals: int
      StackMap stack:
            aload 10 /* tableUpdateNeeded */
            iload 15 /* j */
            baload
            ifeq 68
        55: .line 3525
            aload 0 /* this */
        56: .line 3526
            aload 1 /* id */
        57: .line 3527
            aload 2 /* fields */
        58: .line 3528
            aload 5 /* oldFields */
        59: .line 3529
            iload 15 /* j */
            ifne 60
            aload 8 /* rowId */
            goto 61
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] int[] int java.lang.Object[] java.lang.Object java.lang.Object java.lang.Object org.hibernate.engine.spi.SessionImplementor boolean[] int boolean[] java.lang.String[] org.hibernate.engine.spi.EntityEntry int
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] java.lang.Object[]
        60: aconst_null
        61: .line 3530
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] int[] int java.lang.Object[] java.lang.Object java.lang.Object java.lang.Object org.hibernate.engine.spi.SessionImplementor boolean[] int boolean[] java.lang.String[] org.hibernate.engine.spi.EntityEntry int
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object[] java.lang.Object[] java.lang.Object
            aload 12 /* propsToUpdate */
        62: .line 3531
            iload 15 /* j */
        63: .line 3532
            aload 6 /* oldVersion */
        64: .line 3533
            aload 7 /* object */
        65: .line 3534
            aload 13 /* updateStrings */
            iload 15 /* j */
            aaload
        66: .line 3535
            aload 9 /* session */
        67: .line 3525
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert:(Ljava/io/Serializable;[Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Object;[ZILjava/lang/Object;Ljava/lang/Object;Ljava/lang/String;Lorg/hibernate/engine/spi/SessionImplementor;)V
        68: .line 3522
      StackMap locals:
      StackMap stack:
            iinc 15 /* j */ 1
      StackMap locals:
      StackMap stack:
        69: iload 15 /* j */
            iload 11 /* span */
            if_icmplt 54
        end local 15 // int j
        70: .line 3539
            return
        end local 14 // org.hibernate.engine.spi.EntityEntry entry
        end local 13 // java.lang.String[] updateStrings
        end local 12 // boolean[] propsToUpdate
        end local 11 // int span
        end local 10 // boolean[] tableUpdateNeeded
        end local 9 // org.hibernate.engine.spi.SessionImplementor session
        end local 8 // java.lang.Object rowId
        end local 7 // java.lang.Object object
        end local 6 // java.lang.Object oldVersion
        end local 5 // java.lang.Object[] oldFields
        end local 4 // boolean hasDirtyCollection
        end local 3 // int[] dirtyFields
        end local 2 // java.lang.Object[] fields
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   71     0                this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   71     1                  id  Ljava/io/Serializable;
            0   71     2              fields  [Ljava/lang/Object;
            0   71     3         dirtyFields  [I
            0   71     4  hasDirtyCollection  Z
            0   71     5           oldFields  [Ljava/lang/Object;
            0   71     6          oldVersion  Ljava/lang/Object;
            0   71     7              object  Ljava/lang/Object;
            0   71     8               rowId  Ljava/lang/Object;
            0   71     9             session  Lorg/hibernate/engine/spi/SessionImplementor;
            2    9    10          strategies  [Lorg/hibernate/tuple/InMemoryValueGenerationStrategy;
            3    9    11                   i  I
           10   71    10   tableUpdateNeeded  [Z
           11   71    11                span  I
           16   28    12       propsToUpdate  [Z
           34   46    12       propsToUpdate  [Z
           52   71    12       propsToUpdate  [Z
           17   28    13       updateStrings  [Ljava/lang/String;
           35   46    13       updateStrings  [Ljava/lang/String;
           51   71    13       updateStrings  [Ljava/lang/String;
           12   71    14               entry  Lorg/hibernate/engine/spi/EntityEntry;
           18   27    15                   j  I
           36   45    15                   j  I
           53   70    15                   j  I
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                    Name  Flags
      id                  final
      fields              final
      dirtyFields         final
      hasDirtyCollection  final
      oldFields           final
      oldVersion          final
      object              final
      rowId               final
      session             final

  public java.io.Serializable insert(java.lang.Object[], java.lang.Object, org.hibernate.engine.spi.SessionImplementor);
    descriptor: ([Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/io/Serializable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=8, args_size=4
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object[] fields
        start local 2 // java.lang.Object object
        start local 3 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 3544
            aload 0 /* this */
            aload 1 /* fields */
            aload 2 /* object */
            aload 3 /* session */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.preInsertInMemoryValueGeneration:([Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)V
         1: .line 3546
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableSpan:()I
            istore 4 /* span */
        start local 4 // int span
         2: .line 3548
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.isDynamicInsert:()Z
            ifeq 11
         3: .line 3550
            aload 0 /* this */
            aload 1 /* fields */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertiesToInsert:([Ljava/lang/Object;)[Z
            astore 6 /* notNull */
        start local 6 // boolean[] notNull
         4: .line 3551
            aload 0 /* this */
            aload 1 /* fields */
            aload 6 /* notNull */
            aload 0 /* this */
            iconst_1
            aload 6 /* notNull */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateInsertString:(Z[Z)Ljava/lang/String;
            aload 2 /* object */
            aload 3 /* session */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.insert:([Ljava/lang/Object;[ZLjava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/io/Serializable;
            astore 5 /* id */
        start local 5 // java.io.Serializable id
         5: .line 3552
            iconst_1
            istore 7 /* j */
        start local 7 // int j
         6: goto 9
         7: .line 3553
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.Object[] java.lang.Object org.hibernate.engine.spi.SessionImplementor int java.io.Serializable boolean[] int
      StackMap stack:
            aload 0 /* this */
            aload 5 /* id */
            aload 1 /* fields */
            aload 6 /* notNull */
            iload 7 /* j */
            aload 0 /* this */
            aload 6 /* notNull */
            iload 7 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateInsertString:([ZI)Ljava/lang/String;
            aload 2 /* object */
            aload 3 /* session */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.insert:(Ljava/io/Serializable;[Ljava/lang/Object;[ZILjava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)V
         8: .line 3552
            iinc 7 /* j */ 1
      StackMap locals:
      StackMap stack:
         9: iload 7 /* j */
            iload 4 /* span */
            if_icmplt 7
        end local 7 // int j
        end local 6 // boolean[] notNull
        10: .line 3555
            goto 17
        end local 5 // java.io.Serializable id
        11: .line 3558
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* fields */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyInsertability:()[Z
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSQLIdentityInsertString:()Ljava/lang/String;
            aload 2 /* object */
            aload 3 /* session */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.insert:([Ljava/lang/Object;[ZLjava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/io/Serializable;
            astore 5 /* id */
        start local 5 // java.io.Serializable id
        12: .line 3559
            iconst_1
            istore 6 /* j */
        start local 6 // int j
        13: goto 16
        14: .line 3560
      StackMap locals: java.io.Serializable int
      StackMap stack:
            aload 0 /* this */
            aload 5 /* id */
            aload 1 /* fields */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyInsertability:()[Z
            iload 6 /* j */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSQLInsertStrings:()[Ljava/lang/String;
            iload 6 /* j */
            aaload
            aload 2 /* object */
            aload 3 /* session */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.insert:(Ljava/io/Serializable;[Ljava/lang/Object;[ZILjava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)V
        15: .line 3559
            iinc 6 /* j */ 1
      StackMap locals:
      StackMap stack:
        16: iload 6 /* j */
            iload 4 /* span */
            if_icmplt 14
        end local 6 // int j
        17: .line 3563
      StackMap locals:
      StackMap stack:
            aload 5 /* id */
            areturn
        end local 5 // java.io.Serializable id
        end local 4 // int span
        end local 3 // org.hibernate.engine.spi.SessionImplementor session
        end local 2 // java.lang.Object object
        end local 1 // java.lang.Object[] fields
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   18     1   fields  [Ljava/lang/Object;
            0   18     2   object  Ljava/lang/Object;
            0   18     3  session  Lorg/hibernate/engine/spi/SessionImplementor;
            2   18     4     span  I
            5   11     5       id  Ljava/io/Serializable;
           12   18     5       id  Ljava/io/Serializable;
            4   10     6  notNull  [Z
            6   10     7        j  I
           13   17     6        j  I
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
         Name  Flags
      fields   
      object   
      session  

  public void insert(java.io.Serializable, java.lang.Object[], java.lang.Object, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/io/Serializable;[Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=8, args_size=5
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.io.Serializable id
        start local 2 // java.lang.Object[] fields
        start local 3 // java.lang.Object object
        start local 4 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 3568
            aload 0 /* this */
            aload 2 /* fields */
            aload 3 /* object */
            aload 4 /* session */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.preInsertInMemoryValueGeneration:([Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)V
         1: .line 3570
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableSpan:()I
            istore 5 /* span */
        start local 5 // int span
         2: .line 3571
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.isDynamicInsert:()Z
            ifeq 10
         3: .line 3573
            aload 0 /* this */
            aload 2 /* fields */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertiesToInsert:([Ljava/lang/Object;)[Z
            astore 6 /* notNull */
        start local 6 // boolean[] notNull
         4: .line 3574
            iconst_0
            istore 7 /* j */
        start local 7 // int j
         5: goto 8
         6: .line 3575
      StackMap locals: int boolean[] int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* id */
            aload 2 /* fields */
            aload 6 /* notNull */
            iload 7 /* j */
            aload 0 /* this */
            aload 6 /* notNull */
            iload 7 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateInsertString:([ZI)Ljava/lang/String;
            aload 3 /* object */
            aload 4 /* session */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.insert:(Ljava/io/Serializable;[Ljava/lang/Object;[ZILjava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)V
         7: .line 3574
            iinc 7 /* j */ 1
      StackMap locals:
      StackMap stack:
         8: iload 7 /* j */
            iload 5 /* span */
            if_icmplt 6
        end local 7 // int j
        end local 6 // boolean[] notNull
         9: .line 3577
            goto 15
        10: .line 3580
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* j */
        start local 6 // int j
        11: goto 14
        12: .line 3581
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* id */
            aload 2 /* fields */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyInsertability:()[Z
            iload 6 /* j */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSQLInsertStrings:()[Ljava/lang/String;
            iload 6 /* j */
            aaload
            aload 3 /* object */
            aload 4 /* session */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.insert:(Ljava/io/Serializable;[Ljava/lang/Object;[ZILjava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)V
        13: .line 3580
            iinc 6 /* j */ 1
      StackMap locals:
      StackMap stack:
        14: iload 6 /* j */
            iload 5 /* span */
            if_icmplt 12
        end local 6 // int j
        15: .line 3584
      StackMap locals:
      StackMap stack:
            return
        end local 5 // int span
        end local 4 // org.hibernate.engine.spi.SessionImplementor session
        end local 3 // java.lang.Object object
        end local 2 // java.lang.Object[] fields
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   16     1       id  Ljava/io/Serializable;
            0   16     2   fields  [Ljava/lang/Object;
            0   16     3   object  Ljava/lang/Object;
            0   16     4  session  Lorg/hibernate/engine/spi/SessionImplementor;
            2   16     5     span  I
            4    9     6  notNull  [Z
            5    9     7        j  I
           11   15     6        j  I
    MethodParameters:
         Name  Flags
      id       
      fields   
      object   
      session  

  private void preInsertInMemoryValueGeneration(java.lang.Object[], java.lang.Object, org.hibernate.engine.spi.SessionImplementor);
    descriptor: ([Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object[] fields
        start local 2 // java.lang.Object object
        start local 3 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 3587
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityMetamodel:()Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.hasPreInsertGeneratedValues:()Z
            ifeq 9
         1: .line 3588
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityMetamodel:()Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getInMemoryValueGenerationStrategies:()[Lorg/hibernate/tuple/InMemoryValueGenerationStrategy;
            astore 4 /* strategies */
        start local 4 // org.hibernate.tuple.InMemoryValueGenerationStrategy[] strategies
         2: .line 3589
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 8
         4: .line 3590
      StackMap locals: org.hibernate.tuple.InMemoryValueGenerationStrategy[] int
      StackMap stack:
            aload 4 /* strategies */
            iload 5 /* i */
            aaload
            ifnull 7
            aload 4 /* strategies */
            iload 5 /* i */
            aaload
            invokeinterface org.hibernate.tuple.InMemoryValueGenerationStrategy.getGenerationTiming:()Lorg/hibernate/tuple/GenerationTiming;
            invokevirtual org.hibernate.tuple.GenerationTiming.includesInsert:()Z
            ifeq 7
         5: .line 3591
            aload 1 /* fields */
            iload 5 /* i */
            aload 4 /* strategies */
            iload 5 /* i */
            aaload
            invokeinterface org.hibernate.tuple.InMemoryValueGenerationStrategy.getValueGenerator:()Lorg/hibernate/tuple/ValueGenerator;
            aload 3 /* session */
            checkcast org.hibernate.Session
            aload 2 /* object */
            invokeinterface org.hibernate.tuple.ValueGenerator.generateValue:(Lorg/hibernate/Session;Ljava/lang/Object;)Ljava/lang/Object;
            aastore
         6: .line 3592
            aload 0 /* this */
            aload 2 /* object */
            iload 5 /* i */
            aload 1 /* fields */
            iload 5 /* i */
            aaload
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValue:(Ljava/lang/Object;ILjava/lang/Object;)V
         7: .line 3589
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 5 /* i */
            aload 4 /* strategies */
            arraylength
            if_icmplt 4
        end local 5 // int i
        end local 4 // org.hibernate.tuple.InMemoryValueGenerationStrategy[] strategies
         9: .line 3596
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.hibernate.engine.spi.SessionImplementor session
        end local 2 // java.lang.Object object
        end local 1 // java.lang.Object[] fields
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   10     1      fields  [Ljava/lang/Object;
            0   10     2      object  Ljava/lang/Object;
            0   10     3     session  Lorg/hibernate/engine/spi/SessionImplementor;
            2    9     4  strategies  [Lorg/hibernate/tuple/InMemoryValueGenerationStrategy;
            3    9     5           i  I
    MethodParameters:
         Name  Flags
      fields   
      object   
      session  

  public void delete(java.io.Serializable, java.lang.Object, java.lang.Object, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/io/Serializable;Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=11, args_size=5
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.io.Serializable id
        start local 2 // java.lang.Object version
        start local 3 // java.lang.Object object
        start local 4 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 3603
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableSpan:()I
            istore 5 /* span */
        start local 5 // int span
         1: .line 3604
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.isVersioned:()Z
            ifne 2
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isAllOrDirtyOptLocking:()Z
            ifeq 2
            iconst_1
            goto 3
      StackMap locals: int
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: istore 6 /* isImpliedOptimisticLocking */
        start local 6 // boolean isImpliedOptimisticLocking
         4: .line 3605
            aconst_null
            astore 7 /* loadedState */
        start local 7 // java.lang.Object[] loadedState
         5: .line 3606
            iload 6 /* isImpliedOptimisticLocking */
            ifeq 11
         6: .line 3611
            aload 4 /* session */
            aload 1 /* id */
            aload 0 /* this */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.generateEntityKey:(Ljava/io/Serializable;Lorg/hibernate/persister/entity/EntityPersister;)Lorg/hibernate/engine/spi/EntityKey;
            astore 8 /* key */
        start local 8 // org.hibernate.engine.spi.EntityKey key
         7: .line 3612
            aload 4 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getPersistenceContext:()Lorg/hibernate/engine/spi/PersistenceContext;
            aload 8 /* key */
            invokeinterface org.hibernate.engine.spi.PersistenceContext.getEntity:(Lorg/hibernate/engine/spi/EntityKey;)Ljava/lang/Object;
            astore 9 /* entity */
        start local 9 // java.lang.Object entity
         8: .line 3613
            aload 9 /* entity */
            ifnull 11
         9: .line 3614
            aload 4 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getPersistenceContext:()Lorg/hibernate/engine/spi/PersistenceContext;
            aload 9 /* entity */
            invokeinterface org.hibernate.engine.spi.PersistenceContext.getEntry:(Ljava/lang/Object;)Lorg/hibernate/engine/spi/EntityEntry;
            astore 10 /* entry */
        start local 10 // org.hibernate.engine.spi.EntityEntry entry
        10: .line 3615
            aload 10 /* entry */
            invokevirtual org.hibernate.engine.spi.EntityEntry.getLoadedState:()[Ljava/lang/Object;
            astore 7 /* loadedState */
        end local 10 // org.hibernate.engine.spi.EntityEntry entry
        end local 9 // java.lang.Object entity
        end local 8 // org.hibernate.engine.spi.EntityKey key
        11: .line 3620
      StackMap locals: int java.lang.Object[]
      StackMap stack:
            iload 6 /* isImpliedOptimisticLocking */
            ifeq 14
            aload 7 /* loadedState */
            ifnull 14
        12: .line 3622
            aload 0 /* this */
            aload 7 /* loadedState */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateSQLDeletStrings:([Ljava/lang/Object;)[Ljava/lang/String;
            astore 8 /* deleteStrings */
        start local 8 // java.lang.String[] deleteStrings
        13: .line 3623
            goto 15
        end local 8 // java.lang.String[] deleteStrings
        14: .line 3626
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSQLDeleteStrings:()[Ljava/lang/String;
            astore 8 /* deleteStrings */
        start local 8 // java.lang.String[] deleteStrings
        15: .line 3629
      StackMap locals: java.lang.String[]
      StackMap stack:
            iload 5 /* span */
            iconst_1
            isub
            istore 9 /* j */
        start local 9 // int j
        16: goto 19
        17: .line 3630
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* id */
            aload 2 /* version */
            iload 9 /* j */
            aload 3 /* object */
            aload 8 /* deleteStrings */
            iload 9 /* j */
            aaload
            aload 4 /* session */
            aload 7 /* loadedState */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.delete:(Ljava/io/Serializable;Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/String;Lorg/hibernate/engine/spi/SessionImplementor;[Ljava/lang/Object;)V
        18: .line 3629
            iinc 9 /* j */ -1
      StackMap locals:
      StackMap stack:
        19: iload 9 /* j */
            ifge 17
        end local 9 // int j
        20: .line 3633
            return
        end local 8 // java.lang.String[] deleteStrings
        end local 7 // java.lang.Object[] loadedState
        end local 6 // boolean isImpliedOptimisticLocking
        end local 5 // int span
        end local 4 // org.hibernate.engine.spi.SessionImplementor session
        end local 3 // java.lang.Object object
        end local 2 // java.lang.Object version
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   21     0                        this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   21     1                          id  Ljava/io/Serializable;
            0   21     2                     version  Ljava/lang/Object;
            0   21     3                      object  Ljava/lang/Object;
            0   21     4                     session  Lorg/hibernate/engine/spi/SessionImplementor;
            1   21     5                        span  I
            4   21     6  isImpliedOptimisticLocking  Z
            5   21     7                 loadedState  [Ljava/lang/Object;
            7   11     8                         key  Lorg/hibernate/engine/spi/EntityKey;
            8   11     9                      entity  Ljava/lang/Object;
           10   11    10                       entry  Lorg/hibernate/engine/spi/EntityEntry;
           13   14     8               deleteStrings  [Ljava/lang/String;
           15   21     8               deleteStrings  [Ljava/lang/String;
           16   20     9                           j  I
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
         Name  Flags
      id       
      version  
      object   
      session  

  private boolean isAllOrDirtyOptLocking();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 3636
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getOptimisticLockStyle:()Lorg/hibernate/engine/OptimisticLockStyle;
            getstatic org.hibernate.engine.OptimisticLockStyle.DIRTY:Lorg/hibernate/engine/OptimisticLockStyle;
            if_acmpeq 3
         1: .line 3637
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getOptimisticLockStyle:()Lorg/hibernate/engine/OptimisticLockStyle;
            getstatic org.hibernate.engine.OptimisticLockStyle.ALL:Lorg/hibernate/engine/OptimisticLockStyle;
            if_acmpeq 3
         2: .line 3636
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  private java.lang.String[] generateSQLDeletStrings(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)[Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=12, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object[] loadedState
         0: .line 3641
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableSpan:()I
            istore 2 /* span */
        start local 2 // int span
         1: .line 3642
            iload 2 /* span */
            anewarray java.lang.String
            astore 3 /* deleteStrings */
        start local 3 // java.lang.String[] deleteStrings
         2: .line 3643
            iload 2 /* span */
            iconst_1
            isub
            istore 4 /* j */
        start local 4 // int j
         3: goto 29
         4: .line 3644
      StackMap locals: int java.lang.String[] int
      StackMap stack:
            new org.hibernate.sql.Delete
            dup
            invokespecial org.hibernate.sql.Delete.<init>:()V
         5: .line 3645
            aload 0 /* this */
            iload 4 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableName:(I)Ljava/lang/String;
            invokevirtual org.hibernate.sql.Delete.setTableName:(Ljava/lang/String;)Lorg/hibernate/sql/Delete;
         6: .line 3646
            aload 0 /* this */
            iload 4 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getKeyColumns:(I)[Ljava/lang/String;
            invokevirtual org.hibernate.sql.Delete.addPrimaryKeyColumns:([Ljava/lang/String;)Lorg/hibernate/sql/Delete;
         7: .line 3644
            astore 5 /* delete */
        start local 5 // org.hibernate.sql.Delete delete
         8: .line 3647
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.isCommentsEnabled:()Z
            ifeq 10
         9: .line 3648
            aload 5 /* delete */
            new java.lang.StringBuilder
            dup
            ldc "delete "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* j */
            invokevirtual java.lang.StringBuilder.append:(I)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.setComment:(Ljava/lang/String;)Lorg/hibernate/sql/Delete;
            pop
        10: .line 3651
      StackMap locals: org.hibernate.sql.Delete
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyVersionability:()[Z
            astore 6 /* versionability */
        start local 6 // boolean[] versionability
        11: .line 3652
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyTypes:()[Lorg/hibernate/type/Type;
            astore 7 /* types */
        start local 7 // org.hibernate.type.Type[] types
        12: .line 3653
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        13: goto 26
        14: .line 3654
      StackMap locals: boolean[] org.hibernate.type.Type[] int
      StackMap stack:
            aload 0 /* this */
            iload 8 /* i */
            iload 4 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isPropertyOfTable:(II)Z
            ifeq 25
            aload 6 /* versionability */
            iload 8 /* i */
            baload
            ifeq 25
        15: .line 3657
            aload 0 /* this */
            iload 8 /* i */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyColumnNames:(I)[Ljava/lang/String;
            astore 9 /* propertyColumnNames */
        start local 9 // java.lang.String[] propertyColumnNames
        16: .line 3658
            aload 7 /* types */
            iload 8 /* i */
            aaload
            aload 1 /* loadedState */
            iload 8 /* i */
            aaload
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.type.Type.toColumnNullness:(Ljava/lang/Object;Lorg/hibernate/engine/spi/Mapping;)[Z
            astore 10 /* propertyNullness */
        start local 10 // boolean[] propertyNullness
        17: .line 3659
            iconst_0
            istore 11 /* k */
        start local 11 // int k
        18: goto 24
        19: .line 3660
      StackMap locals: java.lang.String[] boolean[] int
      StackMap stack:
            aload 10 /* propertyNullness */
            iload 11 /* k */
            baload
            ifeq 22
        20: .line 3661
            aload 5 /* delete */
            new java.lang.StringBuilder
            dup
            aload 9 /* propertyColumnNames */
            iload 11 /* k */
            aaload
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            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.addWhereFragment:(Ljava/lang/String;)Lorg/hibernate/sql/Delete;
            pop
        21: .line 3662
            goto 23
        22: .line 3664
      StackMap locals:
      StackMap stack:
            aload 5 /* delete */
            new java.lang.StringBuilder
            dup
            aload 9 /* propertyColumnNames */
            iload 11 /* k */
            aaload
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " is null"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Delete.addWhereFragment:(Ljava/lang/String;)Lorg/hibernate/sql/Delete;
            pop
        23: .line 3659
      StackMap locals:
      StackMap stack:
            iinc 11 /* k */ 1
      StackMap locals:
      StackMap stack:
        24: iload 11 /* k */
            aload 10 /* propertyNullness */
            arraylength
            if_icmplt 19
        end local 11 // int k
        end local 10 // boolean[] propertyNullness
        end local 9 // java.lang.String[] propertyColumnNames
        25: .line 3653
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 8 /* i */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertySpan:()I
            if_icmplt 14
        end local 8 // int i
        27: .line 3669
            aload 3 /* deleteStrings */
            iload 4 /* j */
            aload 5 /* delete */
            invokevirtual org.hibernate.sql.Delete.toStatementString:()Ljava/lang/String;
            aastore
        end local 7 // org.hibernate.type.Type[] types
        end local 6 // boolean[] versionability
        end local 5 // org.hibernate.sql.Delete delete
        28: .line 3643
            iinc 4 /* j */ -1
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.Object[] int java.lang.String[] int
      StackMap stack:
        29: iload 4 /* j */
            ifge 4
        end local 4 // int j
        30: .line 3671
            aload 3 /* deleteStrings */
            areturn
        end local 3 // java.lang.String[] deleteStrings
        end local 2 // int span
        end local 1 // java.lang.Object[] loadedState
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   31     0                 this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   31     1          loadedState  [Ljava/lang/Object;
            1   31     2                 span  I
            2   31     3        deleteStrings  [Ljava/lang/String;
            3   30     4                    j  I
            8   28     5               delete  Lorg/hibernate/sql/Delete;
           11   28     6       versionability  [Z
           12   28     7                types  [Lorg/hibernate/type/Type;
           13   27     8                    i  I
           16   25     9  propertyColumnNames  [Ljava/lang/String;
           17   25    10     propertyNullness  [Z
           18   25    11                    k  I
    MethodParameters:
             Name  Flags
      loadedState  

  protected void logStaticSQL();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 3675
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isDebugEnabled:()Z
            ifeq 25
         1: .line 3676
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Static SQL for entity: %s"
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 3677
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlLazySelectString:Ljava/lang/String;
            ifnull 4
         3: .line 3678
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc " Lazy select: %s"
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlLazySelectString:Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
         4: .line 3680
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlVersionSelectString:Ljava/lang/String;
            ifnull 6
         5: .line 3681
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc " Version select: %s"
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlVersionSelectString:Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 3683
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlSnapshotSelectString:Ljava/lang/String;
            ifnull 8
         7: .line 3684
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc " Snapshot select: %s"
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlSnapshotSelectString:Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
         8: .line 3686
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* j */
        start local 1 // int j
         9: goto 14
        10: .line 3687
      StackMap locals: int
      StackMap stack:
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc " Insert %s: %s"
            iload 1 /* j */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSQLInsertStrings:()[Ljava/lang/String;
            iload 1 /* j */
            aaload
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        11: .line 3688
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc " Update %s: %s"
            iload 1 /* j */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSQLUpdateStrings:()[Ljava/lang/String;
            iload 1 /* j */
            aaload
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        12: .line 3689
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc " Delete %s: %s"
            iload 1 /* j */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSQLDeleteStrings:()[Ljava/lang/String;
            iload 1 /* j */
            aaload
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        13: .line 3686
            iinc 1 /* j */ 1
      StackMap locals:
      StackMap stack:
        14: iload 1 /* j */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableSpan:()I
            if_icmplt 10
        end local 1 // int j
        15: .line 3691
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlIdentityInsertString:Ljava/lang/String;
            ifnull 17
        16: .line 3692
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc " Identity insert: %s"
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlIdentityInsertString:Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
        17: .line 3694
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlUpdateByRowIdString:Ljava/lang/String;
            ifnull 19
        18: .line 3695
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc " Update by row id (all fields): %s"
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlUpdateByRowIdString:Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
        19: .line 3697
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlLazyUpdateByRowIdString:Ljava/lang/String;
            ifnull 21
        20: .line 3698
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc " Update by row id (non-lazy fields): %s"
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlLazyUpdateByRowIdString:Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
        21: .line 3700
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlInsertGeneratedValuesSelectString:Ljava/lang/String;
            ifnull 23
        22: .line 3701
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc " Insert-generated property select: %s"
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlInsertGeneratedValuesSelectString:Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
        23: .line 3703
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlUpdateGeneratedValuesSelectString:Ljava/lang/String;
            ifnull 25
        24: .line 3704
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc " Update-generated property select: %s"
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlUpdateGeneratedValuesSelectString:Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
        25: .line 3707
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   26     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            9   15     1     j  I

  public java.lang.String filterFragment(java.lang.String, java.util.Map);
    descriptor: (Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String alias
        start local 2 // java.util.Map enabledFilters
         0: .line 3711
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* sessionFilterFragment */
        start local 3 // java.lang.StringBuilder sessionFilterFragment
         1: .line 3712
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.filterHelper:Lorg/hibernate/internal/FilterHelper;
            aload 3 /* sessionFilterFragment */
            aload 0 /* this */
            aload 1 /* alias */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFilterAliasGenerator:(Ljava/lang/String;)Lorg/hibernate/internal/FilterAliasGenerator;
            aload 2 /* enabledFilters */
            invokevirtual org.hibernate.internal.FilterHelper.render:(Ljava/lang/StringBuilder;Lorg/hibernate/internal/FilterAliasGenerator;Ljava/util/Map;)V
         2: .line 3713
            aload 3 /* sessionFilterFragment */
            aload 0 /* this */
            aload 1 /* alias */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.filterFragment:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.StringBuilder sessionFilterFragment
        end local 2 // java.util.Map enabledFilters
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    3     0                   this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    3     1                  alias  Ljava/lang/String;
            0    3     2         enabledFilters  Ljava/util/Map;
            1    3     3  sessionFilterFragment  Ljava/lang/StringBuilder;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
                Name  Flags
      alias           
      enabledFilters  

  public java.lang.String filterFragment(java.lang.String, java.util.Map, java.util.Set<java.lang.String>);
    descriptor: (Ljava/lang/String;Ljava/util/Map;Ljava/util/Set;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String alias
        start local 2 // java.util.Map enabledFilters
        start local 3 // java.util.Set treatAsDeclarations
         0: .line 3718
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 4 /* sessionFilterFragment */
        start local 4 // java.lang.StringBuilder sessionFilterFragment
         1: .line 3719
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.filterHelper:Lorg/hibernate/internal/FilterHelper;
            aload 4 /* sessionFilterFragment */
            aload 0 /* this */
            aload 1 /* alias */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFilterAliasGenerator:(Ljava/lang/String;)Lorg/hibernate/internal/FilterAliasGenerator;
            aload 2 /* enabledFilters */
            invokevirtual org.hibernate.internal.FilterHelper.render:(Ljava/lang/StringBuilder;Lorg/hibernate/internal/FilterAliasGenerator;Ljava/util/Map;)V
         2: .line 3720
            aload 4 /* sessionFilterFragment */
            aload 0 /* this */
            aload 1 /* alias */
            aload 3 /* treatAsDeclarations */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.filterFragment:(Ljava/lang/String;Ljava/util/Set;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 4 // java.lang.StringBuilder sessionFilterFragment
        end local 3 // java.util.Set treatAsDeclarations
        end local 2 // java.util.Map enabledFilters
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    3     0                   this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    3     1                  alias  Ljava/lang/String;
            0    3     2         enabledFilters  Ljava/util/Map;
            0    3     3    treatAsDeclarations  Ljava/util/Set<Ljava/lang/String;>;
            1    3     4  sessionFilterFragment  Ljava/lang/StringBuilder;
    Signature: (Ljava/lang/String;Ljava/util/Map;Ljava/util/Set<Ljava/lang/String;>;)Ljava/lang/String;
    MethodParameters:
                     Name  Flags
      alias                
      enabledFilters       
      treatAsDeclarations  

  public java.lang.String generateFilterConditionAlias(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String rootAlias
         0: .line 3724
            aload 1 /* rootAlias */
            areturn
        end local 1 // java.lang.String rootAlias
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  rootAlias  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      rootAlias  

  public java.lang.String oneToManyFilterFragment(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String alias
         0: .line 3728
            ldc ""
            areturn
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  alias  Ljava/lang/String;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
       Name  Flags
      alias  

  public java.lang.String oneToManyFilterFragment(java.lang.String, java.util.Set<java.lang.String>);
    descriptor: (Ljava/lang/String;Ljava/util/Set;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String alias
        start local 2 // java.util.Set treatAsDeclarations
         0: .line 3733
            aload 0 /* this */
            aload 1 /* alias */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.oneToManyFilterFragment:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 2 // java.util.Set treatAsDeclarations
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    1     0                 this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1                alias  Ljava/lang/String;
            0    1     2  treatAsDeclarations  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;)Ljava/lang/String;
    MethodParameters:
                     Name  Flags
      alias                
      treatAsDeclarations  

  public java.lang.String fromJoinFragment(java.lang.String, boolean, boolean);
    descriptor: (Ljava/lang/String;ZZ)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String alias
        start local 2 // boolean innerJoin
        start local 3 // boolean includeSubclasses
         0: .line 3739
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassTableSpan:()I
            iconst_1
            if_icmpne 2
         1: .line 3740
            ldc ""
            goto 3
         2: .line 3741
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* alias */
            iload 2 /* innerJoin */
            iload 3 /* includeSubclasses */
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createJoin:(Ljava/lang/String;ZZLjava/util/Set;)Lorg/hibernate/sql/JoinFragment;
            invokevirtual org.hibernate.sql.JoinFragment.toFromFragmentString:()Ljava/lang/String;
         3: .line 3739
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
        end local 3 // boolean includeSubclasses
        end local 2 // boolean innerJoin
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    4     1              alias  Ljava/lang/String;
            0    4     2          innerJoin  Z
            0    4     3  includeSubclasses  Z
    MethodParameters:
                   Name  Flags
      alias              
      innerJoin          
      includeSubclasses  

  public java.lang.String fromJoinFragment(java.lang.String, boolean, boolean, java.util.Set<java.lang.String>);
    descriptor: (Ljava/lang/String;ZZLjava/util/Set;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String alias
        start local 2 // boolean innerJoin
        start local 3 // boolean includeSubclasses
        start local 4 // java.util.Set treatAsDeclarations
         0: .line 3751
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassTableSpan:()I
            iconst_1
            if_icmpne 2
         1: .line 3752
            ldc ""
            goto 3
         2: .line 3753
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* alias */
            iload 2 /* innerJoin */
            iload 3 /* includeSubclasses */
            aload 4 /* treatAsDeclarations */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createJoin:(Ljava/lang/String;ZZLjava/util/Set;)Lorg/hibernate/sql/JoinFragment;
            invokevirtual org.hibernate.sql.JoinFragment.toFromFragmentString:()Ljava/lang/String;
         3: .line 3751
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
        end local 4 // java.util.Set treatAsDeclarations
        end local 3 // boolean includeSubclasses
        end local 2 // boolean innerJoin
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    4     0                 this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    4     1                alias  Ljava/lang/String;
            0    4     2            innerJoin  Z
            0    4     3    includeSubclasses  Z
            0    4     4  treatAsDeclarations  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Ljava/lang/String;ZZLjava/util/Set<Ljava/lang/String;>;)Ljava/lang/String;
    MethodParameters:
                     Name  Flags
      alias                
      innerJoin            
      includeSubclasses    
      treatAsDeclarations  

  public java.lang.String whereJoinFragment(java.lang.String, boolean, boolean);
    descriptor: (Ljava/lang/String;ZZ)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String alias
        start local 2 // boolean innerJoin
        start local 3 // boolean includeSubclasses
         0: .line 3759
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassTableSpan:()I
            iconst_1
            if_icmpne 2
         1: .line 3760
            ldc ""
            goto 3
         2: .line 3761
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* alias */
            iload 2 /* innerJoin */
            iload 3 /* includeSubclasses */
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createJoin:(Ljava/lang/String;ZZLjava/util/Set;)Lorg/hibernate/sql/JoinFragment;
            invokevirtual org.hibernate.sql.JoinFragment.toWhereFragmentString:()Ljava/lang/String;
         3: .line 3759
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
        end local 3 // boolean includeSubclasses
        end local 2 // boolean innerJoin
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    4     1              alias  Ljava/lang/String;
            0    4     2          innerJoin  Z
            0    4     3  includeSubclasses  Z
    MethodParameters:
                   Name  Flags
      alias              
      innerJoin          
      includeSubclasses  

  public java.lang.String whereJoinFragment(java.lang.String, boolean, boolean, java.util.Set<java.lang.String>);
    descriptor: (Ljava/lang/String;ZZLjava/util/Set;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String alias
        start local 2 // boolean innerJoin
        start local 3 // boolean includeSubclasses
        start local 4 // java.util.Set treatAsDeclarations
         0: .line 3771
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassTableSpan:()I
            iconst_1
            if_icmpne 2
         1: .line 3772
            ldc ""
            goto 3
         2: .line 3773
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* alias */
            iload 2 /* innerJoin */
            iload 3 /* includeSubclasses */
            aload 4 /* treatAsDeclarations */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createJoin:(Ljava/lang/String;ZZLjava/util/Set;)Lorg/hibernate/sql/JoinFragment;
            invokevirtual org.hibernate.sql.JoinFragment.toWhereFragmentString:()Ljava/lang/String;
         3: .line 3771
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
        end local 4 // java.util.Set treatAsDeclarations
        end local 3 // boolean includeSubclasses
        end local 2 // boolean innerJoin
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    4     0                 this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    4     1                alias  Ljava/lang/String;
            0    4     2            innerJoin  Z
            0    4     3    includeSubclasses  Z
            0    4     4  treatAsDeclarations  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Ljava/lang/String;ZZLjava/util/Set<Ljava/lang/String;>;)Ljava/lang/String;
    MethodParameters:
                     Name  Flags
      alias                
      innerJoin            
      includeSubclasses    
      treatAsDeclarations  

  protected boolean isSubclassTableLazy(int);
    descriptor: (I)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int j
         0: .line 3777
            iconst_0
            ireturn
        end local 1 // int j
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1     j  I
    MethodParameters:
      Name  Flags
      j     

  protected org.hibernate.sql.JoinFragment createJoin(java.lang.String, boolean, boolean, java.util.Set<java.lang.String>);
    descriptor: (Ljava/lang/String;ZZLjava/util/Set;)Lorg/hibernate/sql/JoinFragment;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=10, args_size=5
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String name
        start local 2 // boolean innerJoin
        start local 3 // boolean includeSubclasses
        start local 4 // java.util.Set treatAsDeclarations
         0: .line 3782
            aload 1 /* name */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnNames:()[Ljava/lang/String;
            invokestatic org.hibernate.internal.util.StringHelper.qualify:(Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
            astore 5 /* idCols */
        start local 5 // java.lang.String[] idCols
         1: .line 3783
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokevirtual org.hibernate.dialect.Dialect.createOuterJoinFragment:()Lorg/hibernate/sql/JoinFragment;
            astore 6 /* join */
        start local 6 // org.hibernate.sql.JoinFragment join
         2: .line 3784
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassTableSpan:()I
            istore 7 /* tableSpan */
        start local 7 // int tableSpan
         3: .line 3786
            iconst_1
            istore 8 /* j */
        start local 8 // int j
         4: goto 20
         5: .line 3787
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String int int java.util.Set java.lang.String[] org.hibernate.sql.JoinFragment int int
      StackMap stack:
            aload 0 /* this */
         6: .line 3788
            iload 8 /* j */
         7: .line 3789
            iload 2 /* innerJoin */
         8: .line 3790
            iload 3 /* includeSubclasses */
         9: .line 3791
            aload 4 /* treatAsDeclarations */
        10: .line 3787
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.determineSubclassTableJoinType:(IZZLjava/util/Set;)Lorg/hibernate/sql/JoinType;
            astore 9 /* joinType */
        start local 9 // org.hibernate.sql.JoinType joinType
        11: .line 3794
            aload 9 /* joinType */
            ifnull 19
            aload 9 /* joinType */
            getstatic org.hibernate.sql.JoinType.NONE:Lorg/hibernate/sql/JoinType;
            if_acmpeq 19
        12: .line 3795
            aload 6 /* join */
        13: .line 3796
            aload 0 /* this */
            iload 8 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassTableName:(I)Ljava/lang/String;
        14: .line 3797
            aload 1 /* name */
            iload 8 /* j */
            invokestatic org.hibernate.persister.entity.AbstractEntityPersister.generateTableAlias:(Ljava/lang/String;I)Ljava/lang/String;
        15: .line 3798
            aload 5 /* idCols */
        16: .line 3799
            aload 0 /* this */
            iload 8 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassTableKeyColumns:(I)[Ljava/lang/String;
        17: .line 3800
            aload 9 /* joinType */
        18: .line 3795
            invokevirtual org.hibernate.sql.JoinFragment.addJoin:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Lorg/hibernate/sql/JoinType;)V
        end local 9 // org.hibernate.sql.JoinType joinType
        19: .line 3786
      StackMap locals:
      StackMap stack:
            iinc 8 /* j */ 1
      StackMap locals:
      StackMap stack:
        20: iload 8 /* j */
            iload 7 /* tableSpan */
            if_icmplt 5
        end local 8 // int j
        21: .line 3804
            aload 6 /* join */
            areturn
        end local 7 // int tableSpan
        end local 6 // org.hibernate.sql.JoinFragment join
        end local 5 // java.lang.String[] idCols
        end local 4 // java.util.Set treatAsDeclarations
        end local 3 // boolean includeSubclasses
        end local 2 // boolean innerJoin
        end local 1 // java.lang.String name
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   22     0                 this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   22     1                 name  Ljava/lang/String;
            0   22     2            innerJoin  Z
            0   22     3    includeSubclasses  Z
            0   22     4  treatAsDeclarations  Ljava/util/Set<Ljava/lang/String;>;
            1   22     5               idCols  [Ljava/lang/String;
            2   22     6                 join  Lorg/hibernate/sql/JoinFragment;
            3   22     7            tableSpan  I
            4   21     8                    j  I
           11   19     9             joinType  Lorg/hibernate/sql/JoinType;
    Signature: (Ljava/lang/String;ZZLjava/util/Set<Ljava/lang/String;>;)Lorg/hibernate/sql/JoinFragment;
    MethodParameters:
                     Name  Flags
      name                 
      innerJoin            
      includeSubclasses    
      treatAsDeclarations  

  protected org.hibernate.sql.JoinType determineSubclassTableJoinType(int, boolean, boolean, java.util.Set<java.lang.String>);
    descriptor: (IZZLjava/util/Set;)Lorg/hibernate/sql/JoinType;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=6, args_size=5
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int subclassTableNumber
        start local 2 // boolean canInnerJoin
        start local 3 // boolean includeSubclasses
        start local 4 // java.util.Set treatAsDeclarations
         0: .line 3813
            aload 0 /* this */
            iload 1 /* subclassTableNumber */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isClassOrSuperclassTable:(I)Z
            ifeq 10
         1: .line 3814
            iload 2 /* canInnerJoin */
            ifeq 5
         2: .line 3815
            aload 0 /* this */
            iload 1 /* subclassTableNumber */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isInverseTable:(I)Z
            ifne 5
         3: .line 3816
            aload 0 /* this */
            iload 1 /* subclassTableNumber */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isNullableTable:(I)Z
            ifne 5
         4: .line 3814
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 5 /* shouldInnerJoin */
        start local 5 // boolean shouldInnerJoin
         7: .line 3819
            iload 5 /* shouldInnerJoin */
            ifeq 8
            getstatic org.hibernate.sql.JoinType.INNER_JOIN:Lorg/hibernate/sql/JoinType;
            goto 9
      StackMap locals: int
      StackMap stack:
         8: getstatic org.hibernate.sql.JoinType.LEFT_OUTER_JOIN:Lorg/hibernate/sql/JoinType;
      StackMap locals:
      StackMap stack: org.hibernate.sql.JoinType
         9: areturn
        end local 5 // boolean shouldInnerJoin
        10: .line 3828
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* subclassTableNumber */
            aload 4 /* treatAsDeclarations */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isSubclassTableIndicatedByTreatAsDeclarations:(ILjava/util/Set;)Z
            ifeq 12
        11: .line 3829
            getstatic org.hibernate.sql.JoinType.INNER_JOIN:Lorg/hibernate/sql/JoinType;
            areturn
        12: .line 3832
      StackMap locals:
      StackMap stack:
            iload 3 /* includeSubclasses */
            ifeq 16
        13: .line 3833
            aload 0 /* this */
            iload 1 /* subclassTableNumber */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isSubclassTableSequentialSelect:(I)Z
            ifne 16
        14: .line 3834
            aload 0 /* this */
            iload 1 /* subclassTableNumber */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isSubclassTableLazy:(I)Z
            ifne 16
        15: .line 3835
            getstatic org.hibernate.sql.JoinType.LEFT_OUTER_JOIN:Lorg/hibernate/sql/JoinType;
            areturn
        16: .line 3838
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.sql.JoinType.NONE:Lorg/hibernate/sql/JoinType;
            areturn
        end local 4 // java.util.Set treatAsDeclarations
        end local 3 // boolean includeSubclasses
        end local 2 // boolean canInnerJoin
        end local 1 // int subclassTableNumber
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   17     0                 this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   17     1  subclassTableNumber  I
            0   17     2         canInnerJoin  Z
            0   17     3    includeSubclasses  Z
            0   17     4  treatAsDeclarations  Ljava/util/Set<Ljava/lang/String;>;
            7   10     5      shouldInnerJoin  Z
    Signature: (IZZLjava/util/Set<Ljava/lang/String;>;)Lorg/hibernate/sql/JoinType;
    MethodParameters:
                     Name  Flags
      subclassTableNumber  
      canInnerJoin         
      includeSubclasses    
      treatAsDeclarations  

  protected boolean isSubclassTableIndicatedByTreatAsDeclarations(int, java.util.Set<java.lang.String>);
    descriptor: (ILjava/util/Set;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int subclassTableNumber
        start local 2 // java.util.Set treatAsDeclarations
         0: .line 3844
            iconst_0
            ireturn
        end local 2 // java.util.Set treatAsDeclarations
        end local 1 // int subclassTableNumber
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    1     0                 this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  subclassTableNumber  I
            0    1     2  treatAsDeclarations  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (ILjava/util/Set<Ljava/lang/String;>;)Z
    MethodParameters:
                     Name  Flags
      subclassTableNumber  
      treatAsDeclarations  

  protected org.hibernate.sql.JoinFragment createJoin(int[], java.lang.String);
    descriptor: ([ILjava/lang/String;)Lorg/hibernate/sql/JoinFragment;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=7, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int[] tableNumbers
        start local 2 // java.lang.String drivingAlias
         0: .line 3849
            aload 2 /* drivingAlias */
            aload 0 /* this */
            aload 1 /* tableNumbers */
            iconst_0
            iaload
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassTableKeyColumns:(I)[Ljava/lang/String;
            invokestatic org.hibernate.internal.util.StringHelper.qualify:(Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
            astore 3 /* keyCols */
        start local 3 // java.lang.String[] keyCols
         1: .line 3850
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokevirtual org.hibernate.dialect.Dialect.createOuterJoinFragment:()Lorg/hibernate/sql/JoinFragment;
            astore 4 /* jf */
        start local 4 // org.hibernate.sql.JoinFragment jf
         2: .line 3852
            iconst_1
            istore 5 /* i */
        start local 5 // int i
         3: goto 14
         4: .line 3853
      StackMap locals: java.lang.String[] org.hibernate.sql.JoinFragment int
      StackMap stack:
            aload 1 /* tableNumbers */
            iload 5 /* i */
            iaload
            istore 6 /* j */
        start local 6 // int j
         5: .line 3854
            aload 4 /* jf */
            aload 0 /* this */
            iload 6 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassTableName:(I)Ljava/lang/String;
         6: .line 3855
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootAlias:()Ljava/lang/String;
            iload 6 /* j */
            invokestatic org.hibernate.persister.entity.AbstractEntityPersister.generateTableAlias:(Ljava/lang/String;I)Ljava/lang/String;
         7: .line 3856
            aload 3 /* keyCols */
         8: .line 3857
            aload 0 /* this */
            iload 6 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassTableKeyColumns:(I)[Ljava/lang/String;
         9: .line 3858
            aload 0 /* this */
            iload 6 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isInverseSubclassTable:(I)Z
            ifne 10
            aload 0 /* this */
            iload 6 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isNullableSubclassTable:(I)Z
            ifeq 11
        10: .line 3859
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int[] java.lang.String java.lang.String[] org.hibernate.sql.JoinFragment int int
      StackMap stack: org.hibernate.sql.JoinFragment java.lang.String java.lang.String java.lang.String[] java.lang.String[]
            getstatic org.hibernate.sql.JoinType.LEFT_OUTER_JOIN:Lorg/hibernate/sql/JoinType;
            goto 12
        11: .line 3860
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int[] java.lang.String java.lang.String[] org.hibernate.sql.JoinFragment int int
      StackMap stack: org.hibernate.sql.JoinFragment java.lang.String java.lang.String java.lang.String[] java.lang.String[]
            getstatic org.hibernate.sql.JoinType.INNER_JOIN:Lorg/hibernate/sql/JoinType;
        12: .line 3854
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int[] java.lang.String java.lang.String[] org.hibernate.sql.JoinFragment int int
      StackMap stack: org.hibernate.sql.JoinFragment java.lang.String java.lang.String java.lang.String[] java.lang.String[] org.hibernate.sql.JoinType
            invokevirtual org.hibernate.sql.JoinFragment.addJoin:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Lorg/hibernate/sql/JoinType;)V
        end local 6 // int j
        13: .line 3852
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 5 /* i */
            aload 1 /* tableNumbers */
            arraylength
            if_icmplt 4
        end local 5 // int i
        15: .line 3863
            aload 4 /* jf */
            areturn
        end local 4 // org.hibernate.sql.JoinFragment jf
        end local 3 // java.lang.String[] keyCols
        end local 2 // java.lang.String drivingAlias
        end local 1 // int[] tableNumbers
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0          this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   16     1  tableNumbers  [I
            0   16     2  drivingAlias  Ljava/lang/String;
            1   16     3       keyCols  [Ljava/lang/String;
            2   16     4            jf  Lorg/hibernate/sql/JoinFragment;
            3   15     5             i  I
            5   13     6             j  I
    MethodParameters:
              Name  Flags
      tableNumbers  
      drivingAlias  

  protected org.hibernate.sql.SelectFragment createSelect(int[], int[]);
    descriptor: ([I[I)Lorg/hibernate/sql/SelectFragment;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=13, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int[] subclassColumnNumbers
        start local 2 // int[] subclassFormulaNumbers
         0: .line 3869
            new org.hibernate.sql.SelectFragment
            dup
            invokespecial org.hibernate.sql.SelectFragment.<init>:()V
            astore 3 /* selectFragment */
        start local 3 // org.hibernate.sql.SelectFragment selectFragment
         1: .line 3871
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassColumnTableNumberClosure:()[I
            astore 4 /* columnTableNumbers */
        start local 4 // int[] columnTableNumbers
         2: .line 3872
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassColumnAliasClosure:()[Ljava/lang/String;
            astore 5 /* columnAliases */
        start local 5 // java.lang.String[] columnAliases
         3: .line 3873
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassColumnReaderTemplateClosure:()[Ljava/lang/String;
            astore 6 /* columnReaderTemplates */
        start local 6 // java.lang.String[] columnReaderTemplates
         4: .line 3874
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         5: goto 11
         6: .line 3875
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int[] int[] org.hibernate.sql.SelectFragment int[] java.lang.String[] java.lang.String[] int
      StackMap stack:
            aload 1 /* subclassColumnNumbers */
            iload 7 /* i */
            iaload
            istore 8 /* columnNumber */
        start local 8 // int columnNumber
         7: .line 3876
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassColumnSelectableClosure:[Z
            iload 8 /* columnNumber */
            baload
            ifeq 10
         8: .line 3877
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootAlias:()Ljava/lang/String;
            aload 4 /* columnTableNumbers */
            iload 8 /* columnNumber */
            iaload
            invokestatic org.hibernate.persister.entity.AbstractEntityPersister.generateTableAlias:(Ljava/lang/String;I)Ljava/lang/String;
            astore 9 /* subalias */
        start local 9 // java.lang.String subalias
         9: .line 3878
            aload 3 /* selectFragment */
            aload 9 /* subalias */
            aload 6 /* columnReaderTemplates */
            iload 8 /* columnNumber */
            aaload
            aload 5 /* columnAliases */
            iload 8 /* columnNumber */
            aaload
            invokevirtual org.hibernate.sql.SelectFragment.addColumnTemplate:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/SelectFragment;
            pop
        end local 9 // java.lang.String subalias
        end local 8 // int columnNumber
        10: .line 3874
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 7 /* i */
            aload 1 /* subclassColumnNumbers */
            arraylength
            if_icmplt 6
        end local 7 // int i
        12: .line 3882
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassFormulaTableNumberClosure:()[I
            astore 7 /* formulaTableNumbers */
        start local 7 // int[] formulaTableNumbers
        13: .line 3883
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassFormulaTemplateClosure:()[Ljava/lang/String;
            astore 8 /* formulaTemplates */
        start local 8 // java.lang.String[] formulaTemplates
        14: .line 3884
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassFormulaAliasClosure:()[Ljava/lang/String;
            astore 9 /* formulaAliases */
        start local 9 // java.lang.String[] formulaAliases
        15: .line 3885
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        16: goto 21
        17: .line 3886
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int[] int[] org.hibernate.sql.SelectFragment int[] java.lang.String[] java.lang.String[] int[] java.lang.String[] java.lang.String[] int
      StackMap stack:
            aload 2 /* subclassFormulaNumbers */
            iload 10 /* i */
            iaload
            istore 11 /* formulaNumber */
        start local 11 // int formulaNumber
        18: .line 3887
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootAlias:()Ljava/lang/String;
            aload 7 /* formulaTableNumbers */
            iload 11 /* formulaNumber */
            iaload
            invokestatic org.hibernate.persister.entity.AbstractEntityPersister.generateTableAlias:(Ljava/lang/String;I)Ljava/lang/String;
            astore 12 /* subalias */
        start local 12 // java.lang.String subalias
        19: .line 3888
            aload 3 /* selectFragment */
            aload 12 /* subalias */
            aload 8 /* formulaTemplates */
            iload 11 /* formulaNumber */
            aaload
            aload 9 /* formulaAliases */
            iload 11 /* formulaNumber */
            aaload
            invokevirtual org.hibernate.sql.SelectFragment.addFormula:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/SelectFragment;
            pop
        end local 12 // java.lang.String subalias
        end local 11 // int formulaNumber
        20: .line 3885
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 10 /* i */
            aload 2 /* subclassFormulaNumbers */
            arraylength
            if_icmplt 17
        end local 10 // int i
        22: .line 3891
            aload 3 /* selectFragment */
            areturn
        end local 9 // java.lang.String[] formulaAliases
        end local 8 // java.lang.String[] formulaTemplates
        end local 7 // int[] formulaTableNumbers
        end local 6 // java.lang.String[] columnReaderTemplates
        end local 5 // java.lang.String[] columnAliases
        end local 4 // int[] columnTableNumbers
        end local 3 // org.hibernate.sql.SelectFragment selectFragment
        end local 2 // int[] subclassFormulaNumbers
        end local 1 // int[] subclassColumnNumbers
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   23     0                    this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   23     1   subclassColumnNumbers  [I
            0   23     2  subclassFormulaNumbers  [I
            1   23     3          selectFragment  Lorg/hibernate/sql/SelectFragment;
            2   23     4      columnTableNumbers  [I
            3   23     5           columnAliases  [Ljava/lang/String;
            4   23     6   columnReaderTemplates  [Ljava/lang/String;
            5   12     7                       i  I
            7   10     8            columnNumber  I
            9   10     9                subalias  Ljava/lang/String;
           13   23     7     formulaTableNumbers  [I
           14   23     8        formulaTemplates  [Ljava/lang/String;
           15   23     9          formulaAliases  [Ljava/lang/String;
           16   22    10                       i  I
           18   20    11           formulaNumber  I
           19   20    12                subalias  Ljava/lang/String;
    MethodParameters:
                        Name  Flags
      subclassColumnNumbers   final
      subclassFormulaNumbers  final

  protected java.lang.String createFrom(int, java.lang.String);
    descriptor: (ILjava/lang/String;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int tableNumber
        start local 2 // java.lang.String alias
         0: .line 3895
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            iload 1 /* tableNumber */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassTableName:(I)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 2 /* alias */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.String alias
        end local 1 // int tableNumber
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  tableNumber  I
            0    1     2        alias  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      tableNumber  
      alias        

  protected java.lang.String createWhereByKey(int, java.lang.String);
    descriptor: (ILjava/lang/String;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int tableNumber
        start local 2 // java.lang.String alias
         0: .line 3900
            new java.lang.StringBuilder
            dup
            ldc "=? and "
         1: .line 3901
            aload 2 /* alias */
            aload 0 /* this */
            iload 1 /* tableNumber */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassTableKeyColumns:(I)[Ljava/lang/String;
            invokestatic org.hibernate.internal.util.StringHelper.qualify:(Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
         2: .line 3900
            invokestatic org.hibernate.internal.util.StringHelper.join:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 3901
            ldc "=?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 3900
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.String alias
        end local 1 // int tableNumber
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    5     1  tableNumber  I
            0    5     2        alias  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      tableNumber  
      alias        

  protected java.lang.String renderSelect(int[], int[], int[]);
    descriptor: ([I[I[I)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=11, args_size=4
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int[] tableNumbers
        start local 2 // int[] columnNumbers
        start local 3 // int[] formulaNumbers
         0: .line 3909
            aload 1 /* tableNumbers */
            invokestatic java.util.Arrays.sort:([I)V
         1: .line 3912
            aload 1 /* tableNumbers */
            iconst_0
            iaload
            istore 4 /* drivingTable */
        start local 4 // int drivingTable
         2: .line 3913
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootAlias:()Ljava/lang/String;
            iload 4 /* drivingTable */
            invokestatic org.hibernate.persister.entity.AbstractEntityPersister.generateTableAlias:(Ljava/lang/String;I)Ljava/lang/String;
            astore 5 /* drivingAlias */
        start local 5 // java.lang.String drivingAlias
         3: .line 3914
            aload 0 /* this */
            iload 4 /* drivingTable */
            aload 5 /* drivingAlias */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createWhereByKey:(ILjava/lang/String;)Ljava/lang/String;
            astore 6 /* where */
        start local 6 // java.lang.String where
         4: .line 3915
            aload 0 /* this */
            iload 4 /* drivingTable */
            aload 5 /* drivingAlias */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createFrom:(ILjava/lang/String;)Ljava/lang/String;
            astore 7 /* from */
        start local 7 // java.lang.String from
         5: .line 3918
            aload 0 /* this */
            aload 1 /* tableNumbers */
            aload 5 /* drivingAlias */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createJoin:([ILjava/lang/String;)Lorg/hibernate/sql/JoinFragment;
            astore 8 /* jf */
        start local 8 // org.hibernate.sql.JoinFragment jf
         6: .line 3921
            aload 0 /* this */
            aload 2 /* columnNumbers */
            aload 3 /* formulaNumbers */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createSelect:([I[I)Lorg/hibernate/sql/SelectFragment;
            astore 9 /* selectFragment */
        start local 9 // org.hibernate.sql.SelectFragment selectFragment
         7: .line 3924
            new org.hibernate.sql.Select
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokespecial org.hibernate.sql.Select.<init>:(Lorg/hibernate/dialect/Dialect;)V
            astore 10 /* select */
        start local 10 // org.hibernate.sql.Select select
         8: .line 3925
            aload 10 /* select */
            aload 9 /* selectFragment */
            invokevirtual org.hibernate.sql.SelectFragment.toFragmentString:()Ljava/lang/String;
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual org.hibernate.sql.Select.setSelectClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
            pop
         9: .line 3926
            aload 10 /* select */
            aload 7 /* from */
            invokevirtual org.hibernate.sql.Select.setFromClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
            pop
        10: .line 3927
            aload 10 /* select */
            aload 6 /* where */
            invokevirtual org.hibernate.sql.Select.setWhereClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
            pop
        11: .line 3928
            aload 10 /* select */
            aload 8 /* jf */
            invokevirtual org.hibernate.sql.JoinFragment.toFromFragmentString:()Ljava/lang/String;
            aload 8 /* jf */
            invokevirtual org.hibernate.sql.JoinFragment.toWhereFragmentString:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Select.setOuterJoins:(Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/Select;
            pop
        12: .line 3929
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.isCommentsEnabled:()Z
            ifeq 14
        13: .line 3930
            aload 10 /* select */
            new java.lang.StringBuilder
            dup
            ldc "sequential select "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Select.setComment:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
            pop
        14: .line 3932
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int[] int[] int[] int java.lang.String java.lang.String java.lang.String org.hibernate.sql.JoinFragment org.hibernate.sql.SelectFragment org.hibernate.sql.Select
      StackMap stack:
            aload 10 /* select */
            invokevirtual org.hibernate.sql.Select.toStatementString:()Ljava/lang/String;
            areturn
        end local 10 // org.hibernate.sql.Select select
        end local 9 // org.hibernate.sql.SelectFragment selectFragment
        end local 8 // org.hibernate.sql.JoinFragment jf
        end local 7 // java.lang.String from
        end local 6 // java.lang.String where
        end local 5 // java.lang.String drivingAlias
        end local 4 // int drivingTable
        end local 3 // int[] formulaNumbers
        end local 2 // int[] columnNumbers
        end local 1 // int[] tableNumbers
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   15     1    tableNumbers  [I
            0   15     2   columnNumbers  [I
            0   15     3  formulaNumbers  [I
            2   15     4    drivingTable  I
            3   15     5    drivingAlias  Ljava/lang/String;
            4   15     6           where  Ljava/lang/String;
            5   15     7            from  Ljava/lang/String;
            6   15     8              jf  Lorg/hibernate/sql/JoinFragment;
            7   15     9  selectFragment  Lorg/hibernate/sql/SelectFragment;
            8   15    10          select  Lorg/hibernate/sql/Select;
    MethodParameters:
                Name  Flags
      tableNumbers    final
      columnNumbers   final
      formulaNumbers  final

  private java.lang.String getRootAlias();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 3936
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            invokestatic org.hibernate.internal.util.StringHelper.generateAlias:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected void postConstruct(org.hibernate.engine.spi.Mapping);
    descriptor: (Lorg/hibernate/engine/spi/Mapping;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.engine.spi.Mapping mapping
         0: .line 3949
            aload 0 /* this */
            aload 1 /* mapping */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.initPropertyPaths:(Lorg/hibernate/engine/spi/Mapping;)V
         1: .line 3952
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.prepareEntityIdentifierDefinition:()V
         2: .line 3953
            return
        end local 1 // org.hibernate.engine.spi.Mapping mapping
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    3     1  mapping  Lorg/hibernate/engine/spi/Mapping;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
         Name  Flags
      mapping  

  private void doLateInit();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 3957
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableSpan:()I
            istore 1 /* joinSpan */
        start local 1 // int joinSpan
         1: .line 3958
            aload 0 /* this */
            iload 1 /* joinSpan */
            anewarray java.lang.String
            putfield org.hibernate.persister.entity.AbstractEntityPersister.sqlDeleteStrings:[Ljava/lang/String;
         2: .line 3959
            aload 0 /* this */
            iload 1 /* joinSpan */
            anewarray java.lang.String
            putfield org.hibernate.persister.entity.AbstractEntityPersister.sqlInsertStrings:[Ljava/lang/String;
         3: .line 3960
            aload 0 /* this */
            iload 1 /* joinSpan */
            anewarray java.lang.String
            putfield org.hibernate.persister.entity.AbstractEntityPersister.sqlUpdateStrings:[Ljava/lang/String;
         4: .line 3961
            aload 0 /* this */
            iload 1 /* joinSpan */
            anewarray java.lang.String
            putfield org.hibernate.persister.entity.AbstractEntityPersister.sqlLazyUpdateStrings:[Ljava/lang/String;
         5: .line 3963
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.rowIdName:Ljava/lang/String;
            ifnonnull 7
         6: .line 3964
            aconst_null
            goto 8
         7: .line 3965
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyUpdateability:()[Z
            iconst_0
            iconst_1
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateUpdateString:([ZIZ)Ljava/lang/String;
         8: .line 3963
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String
            putfield org.hibernate.persister.entity.AbstractEntityPersister.sqlUpdateByRowIdString:Ljava/lang/String;
         9: .line 3966
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.rowIdName:Ljava/lang/String;
            ifnonnull 11
        10: .line 3967
            aconst_null
            goto 12
        11: .line 3968
      StackMap locals:
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getNonLazyPropertyUpdateability:()[Z
            iconst_0
            iconst_1
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateUpdateString:([ZIZ)Ljava/lang/String;
        12: .line 3966
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String
            putfield org.hibernate.persister.entity.AbstractEntityPersister.sqlLazyUpdateByRowIdString:Ljava/lang/String;
        13: .line 3970
            iconst_0
            istore 2 /* j */
        start local 2 // int j
        14: goto 32
        15: .line 3971
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlInsertStrings:[Ljava/lang/String;
            iload 2 /* j */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.customSQLInsert:[Ljava/lang/String;
            iload 2 /* j */
            aaload
            ifnonnull 17
        16: .line 3972
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyInsertability:()[Z
            iload 2 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateInsertString:([ZI)Ljava/lang/String;
            goto 18
        17: .line 3973
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int int
      StackMap stack: java.lang.String[] int
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.customSQLInsert:[Ljava/lang/String;
            iload 2 /* j */
            aaload
        18: .line 3971
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int int
      StackMap stack: java.lang.String[] int java.lang.String
            aastore
        19: .line 3974
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlUpdateStrings:[Ljava/lang/String;
            iload 2 /* j */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.customSQLUpdate:[Ljava/lang/String;
            iload 2 /* j */
            aaload
            ifnonnull 21
        20: .line 3975
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyUpdateability:()[Z
            iload 2 /* j */
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateUpdateString:([ZIZ)Ljava/lang/String;
            goto 22
        21: .line 3976
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int int
      StackMap stack: java.lang.String[] int
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.customSQLUpdate:[Ljava/lang/String;
            iload 2 /* j */
            aaload
        22: .line 3974
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int int
      StackMap stack: java.lang.String[] int java.lang.String
            aastore
        23: .line 3977
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlLazyUpdateStrings:[Ljava/lang/String;
            iload 2 /* j */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.customSQLUpdate:[Ljava/lang/String;
            iload 2 /* j */
            aaload
            ifnonnull 25
        24: .line 3978
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getNonLazyPropertyUpdateability:()[Z
            iload 2 /* j */
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateUpdateString:([ZIZ)Ljava/lang/String;
            goto 26
        25: .line 3979
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int int
      StackMap stack: java.lang.String[] int
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.customSQLUpdate:[Ljava/lang/String;
            iload 2 /* j */
            aaload
        26: .line 3977
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int int
      StackMap stack: java.lang.String[] int java.lang.String
            aastore
        27: .line 3980
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlDeleteStrings:[Ljava/lang/String;
            iload 2 /* j */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.customSQLDelete:[Ljava/lang/String;
            iload 2 /* j */
            aaload
            ifnonnull 29
        28: .line 3981
            aload 0 /* this */
            iload 2 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateDeleteString:(I)Ljava/lang/String;
            goto 30
        29: .line 3982
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int int
      StackMap stack: java.lang.String[] int
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.customSQLDelete:[Ljava/lang/String;
            iload 2 /* j */
            aaload
        30: .line 3980
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int int
      StackMap stack: java.lang.String[] int java.lang.String
            aastore
        31: .line 3970
            iinc 2 /* j */ 1
      StackMap locals:
      StackMap stack:
        32: iload 2 /* j */
            iload 1 /* joinSpan */
            if_icmplt 15
        end local 2 // int j
        33: .line 3985
            aload 0 /* this */
            iload 1 /* joinSpan */
            newarray 4
            putfield org.hibernate.persister.entity.AbstractEntityPersister.tableHasColumns:[Z
        34: .line 3986
            iconst_0
            istore 2 /* j */
        start local 2 // int j
        35: goto 40
        36: .line 3987
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.tableHasColumns:[Z
            iload 2 /* j */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlUpdateStrings:[Ljava/lang/String;
            iload 2 /* j */
            aaload
            ifnull 37
            iconst_1
            goto 38
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int int
      StackMap stack: boolean[] int
        37: iconst_0
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int int
      StackMap stack: boolean[] int int
        38: bastore
        39: .line 3986
            iinc 2 /* j */ 1
      StackMap locals:
      StackMap stack:
        40: iload 2 /* j */
            iload 1 /* joinSpan */
            if_icmplt 36
        end local 2 // int j
        41: .line 3991
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateSnapshotSelectString:()Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.sqlSnapshotSelectString:Ljava/lang/String;
        42: .line 3992
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateLazySelectString:()Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.sqlLazySelectString:Ljava/lang/String;
        43: .line 3993
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateSelectVersionString:()Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.sqlVersionSelectString:Ljava/lang/String;
        44: .line 3994
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasInsertGeneratedProperties:()Z
            ifeq 46
        45: .line 3995
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateInsertGeneratedValuesSelectString:()Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.sqlInsertGeneratedValuesSelectString:Ljava/lang/String;
        46: .line 3997
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasUpdateGeneratedProperties:()Z
            ifeq 48
        47: .line 3998
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateUpdateGeneratedValuesSelectString:()Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.sqlUpdateGeneratedValuesSelectString:Ljava/lang/String;
        48: .line 4000
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isIdentifierAssignedByInsert:()Z
            ifeq 57
        49: .line 4001
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierGenerator:()Lorg/hibernate/id/IdentifierGenerator;
            checkcast org.hibernate.id.PostInsertIdentifierGenerator
        50: .line 4002
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.useGetGeneratedKeys:()Z
            invokeinterface org.hibernate.id.PostInsertIdentifierGenerator.getInsertGeneratedIdentifierDelegate:(Lorg/hibernate/id/PostInsertIdentityPersister;Lorg/hibernate/dialect/Dialect;Z)Lorg/hibernate/id/insert/InsertGeneratedIdentifierDelegate;
        51: .line 4001
            putfield org.hibernate.persister.entity.AbstractEntityPersister.identityDelegate:Lorg/hibernate/id/insert/InsertGeneratedIdentifierDelegate;
        52: .line 4003
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.customSQLInsert:[Ljava/lang/String;
            iconst_0
            aaload
            ifnonnull 54
        53: .line 4004
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyInsertability:()[Z
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateIdentityInsertString:([Z)Ljava/lang/String;
            goto 55
        54: .line 4005
      StackMap locals:
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.customSQLInsert:[Ljava/lang/String;
            iconst_0
            aaload
        55: .line 4003
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String
            putfield org.hibernate.persister.entity.AbstractEntityPersister.sqlIdentityInsertString:Ljava/lang/String;
        56: .line 4006
            goto 58
        57: .line 4008
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.hibernate.persister.entity.AbstractEntityPersister.sqlIdentityInsertString:Ljava/lang/String;
        58: .line 4011
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.logStaticSQL:()V
        59: .line 4012
            return
        end local 1 // int joinSpan
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   60     0      this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            1   60     1  joinSpan  I
           14   33     2         j  I
           35   41     2         j  I

  public final void postInstantiate();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4015
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.doLateInit:()V
         1: .line 4017
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createLoaders:()V
         2: .line 4018
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createUniqueKeyLoaders:()V
         3: .line 4019
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createQueryLoader:()V
         4: .line 4021
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.doPostInstantiate:()V
         5: .line 4022
            return
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
    Exceptions:
      throws org.hibernate.MappingException

  protected void doPostInstantiate();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4025
            return
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected java.util.Map getLoaders();
    descriptor: ()Ljava/util/Map;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4029
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.loaders:Ljava/util/Map;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected void createLoaders();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=4, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4034
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getLoaders:()Ljava/util/Map;
            astore 1 /* loaders */
        start local 1 // java.util.Map loaders
         1: .line 4035
            aload 1 /* loaders */
            getstatic org.hibernate.LockMode.NONE:Lorg/hibernate/LockMode;
            aload 0 /* this */
            getstatic org.hibernate.LockMode.NONE:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createEntityLoader:(Lorg/hibernate/LockMode;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 4037
            aload 0 /* this */
            getstatic org.hibernate.LockMode.READ:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createEntityLoader:(Lorg/hibernate/LockMode;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
            astore 2 /* readLoader */
        start local 2 // org.hibernate.loader.entity.UniqueEntityLoader readLoader
         3: .line 4038
            aload 1 /* loaders */
            getstatic org.hibernate.LockMode.READ:Lorg/hibernate/LockMode;
            aload 2 /* readLoader */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 4041
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassTableSpan:()I
            iconst_1
            if_icmple 8
         5: .line 4042
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasSubclasses:()Z
            ifeq 8
         6: .line 4043
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokevirtual org.hibernate.dialect.Dialect.supportsOuterJoinForUpdate:()Z
            ifne 8
         7: .line 4041
            iconst_1
            goto 9
      StackMap locals: java.util.Map org.hibernate.loader.entity.UniqueEntityLoader
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: istore 3 /* disableForUpdate */
        start local 3 // boolean disableForUpdate
        10: .line 4045
            aload 1 /* loaders */
        11: .line 4046
            getstatic org.hibernate.LockMode.UPGRADE:Lorg/hibernate/LockMode;
        12: .line 4047
            iload 3 /* disableForUpdate */
            ifeq 14
        13: .line 4048
            aload 2 /* readLoader */
            goto 15
        14: .line 4049
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.util.Map org.hibernate.loader.entity.UniqueEntityLoader int
      StackMap stack: java.util.Map org.hibernate.LockMode
            aload 0 /* this */
            getstatic org.hibernate.LockMode.UPGRADE:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createEntityLoader:(Lorg/hibernate/LockMode;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
        15: .line 4045
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.util.Map org.hibernate.loader.entity.UniqueEntityLoader int
      StackMap stack: java.util.Map org.hibernate.LockMode org.hibernate.loader.entity.UniqueEntityLoader
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 4051
            aload 1 /* loaders */
        17: .line 4052
            getstatic org.hibernate.LockMode.UPGRADE_NOWAIT:Lorg/hibernate/LockMode;
        18: .line 4053
            iload 3 /* disableForUpdate */
            ifeq 20
        19: .line 4054
            aload 2 /* readLoader */
            goto 21
        20: .line 4055
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.util.Map org.hibernate.loader.entity.UniqueEntityLoader int
      StackMap stack: java.util.Map org.hibernate.LockMode
            aload 0 /* this */
            getstatic org.hibernate.LockMode.UPGRADE_NOWAIT:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createEntityLoader:(Lorg/hibernate/LockMode;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
        21: .line 4051
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.util.Map org.hibernate.loader.entity.UniqueEntityLoader int
      StackMap stack: java.util.Map org.hibernate.LockMode org.hibernate.loader.entity.UniqueEntityLoader
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        22: .line 4057
            aload 1 /* loaders */
        23: .line 4058
            getstatic org.hibernate.LockMode.UPGRADE_SKIPLOCKED:Lorg/hibernate/LockMode;
        24: .line 4059
            iload 3 /* disableForUpdate */
            ifeq 26
        25: .line 4060
            aload 2 /* readLoader */
            goto 27
        26: .line 4061
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.util.Map org.hibernate.loader.entity.UniqueEntityLoader int
      StackMap stack: java.util.Map org.hibernate.LockMode
            aload 0 /* this */
            getstatic org.hibernate.LockMode.UPGRADE_SKIPLOCKED:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createEntityLoader:(Lorg/hibernate/LockMode;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
        27: .line 4057
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.util.Map org.hibernate.loader.entity.UniqueEntityLoader int
      StackMap stack: java.util.Map org.hibernate.LockMode org.hibernate.loader.entity.UniqueEntityLoader
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        28: .line 4063
            aload 1 /* loaders */
        29: .line 4064
            getstatic org.hibernate.LockMode.FORCE:Lorg/hibernate/LockMode;
        30: .line 4065
            iload 3 /* disableForUpdate */
            ifeq 32
        31: .line 4066
            aload 2 /* readLoader */
            goto 33
        32: .line 4067
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.util.Map org.hibernate.loader.entity.UniqueEntityLoader int
      StackMap stack: java.util.Map org.hibernate.LockMode
            aload 0 /* this */
            getstatic org.hibernate.LockMode.FORCE:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createEntityLoader:(Lorg/hibernate/LockMode;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
        33: .line 4063
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.util.Map org.hibernate.loader.entity.UniqueEntityLoader int
      StackMap stack: java.util.Map org.hibernate.LockMode org.hibernate.loader.entity.UniqueEntityLoader
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        34: .line 4069
            aload 1 /* loaders */
        35: .line 4070
            getstatic org.hibernate.LockMode.PESSIMISTIC_READ:Lorg/hibernate/LockMode;
        36: .line 4071
            iload 3 /* disableForUpdate */
            ifeq 38
        37: .line 4072
            aload 2 /* readLoader */
            goto 39
        38: .line 4073
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.util.Map org.hibernate.loader.entity.UniqueEntityLoader int
      StackMap stack: java.util.Map org.hibernate.LockMode
            aload 0 /* this */
            getstatic org.hibernate.LockMode.PESSIMISTIC_READ:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createEntityLoader:(Lorg/hibernate/LockMode;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
        39: .line 4069
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.util.Map org.hibernate.loader.entity.UniqueEntityLoader int
      StackMap stack: java.util.Map org.hibernate.LockMode org.hibernate.loader.entity.UniqueEntityLoader
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        40: .line 4075
            aload 1 /* loaders */
        41: .line 4076
            getstatic org.hibernate.LockMode.PESSIMISTIC_WRITE:Lorg/hibernate/LockMode;
        42: .line 4077
            iload 3 /* disableForUpdate */
            ifeq 44
        43: .line 4078
            aload 2 /* readLoader */
            goto 45
        44: .line 4079
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.util.Map org.hibernate.loader.entity.UniqueEntityLoader int
      StackMap stack: java.util.Map org.hibernate.LockMode
            aload 0 /* this */
            getstatic org.hibernate.LockMode.PESSIMISTIC_WRITE:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createEntityLoader:(Lorg/hibernate/LockMode;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
        45: .line 4075
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.util.Map org.hibernate.loader.entity.UniqueEntityLoader int
      StackMap stack: java.util.Map org.hibernate.LockMode org.hibernate.loader.entity.UniqueEntityLoader
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        46: .line 4081
            aload 1 /* loaders */
        47: .line 4082
            getstatic org.hibernate.LockMode.PESSIMISTIC_FORCE_INCREMENT:Lorg/hibernate/LockMode;
        48: .line 4083
            iload 3 /* disableForUpdate */
            ifeq 50
        49: .line 4084
            aload 2 /* readLoader */
            goto 51
        50: .line 4085
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.util.Map org.hibernate.loader.entity.UniqueEntityLoader int
      StackMap stack: java.util.Map org.hibernate.LockMode
            aload 0 /* this */
            getstatic org.hibernate.LockMode.PESSIMISTIC_FORCE_INCREMENT:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createEntityLoader:(Lorg/hibernate/LockMode;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
        51: .line 4081
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.util.Map org.hibernate.loader.entity.UniqueEntityLoader int
      StackMap stack: java.util.Map org.hibernate.LockMode org.hibernate.loader.entity.UniqueEntityLoader
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        52: .line 4087
            aload 1 /* loaders */
            getstatic org.hibernate.LockMode.OPTIMISTIC:Lorg/hibernate/LockMode;
            aload 0 /* this */
            getstatic org.hibernate.LockMode.OPTIMISTIC:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createEntityLoader:(Lorg/hibernate/LockMode;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        53: .line 4088
            aload 1 /* loaders */
            getstatic org.hibernate.LockMode.OPTIMISTIC_FORCE_INCREMENT:Lorg/hibernate/LockMode;
            aload 0 /* this */
            getstatic org.hibernate.LockMode.OPTIMISTIC_FORCE_INCREMENT:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createEntityLoader:(Lorg/hibernate/LockMode;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        54: .line 4090
            aload 1 /* loaders */
        55: .line 4091
            ldc "merge"
        56: .line 4092
            new org.hibernate.loader.entity.CascadeEntityLoader
            dup
            aload 0 /* this */
            getstatic org.hibernate.engine.spi.CascadingActions.MERGE:Lorg/hibernate/engine/spi/CascadingAction;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokespecial org.hibernate.loader.entity.CascadeEntityLoader.<init>:(Lorg/hibernate/persister/entity/OuterJoinLoadable;Lorg/hibernate/engine/spi/CascadingAction;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
        57: .line 4090
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        58: .line 4094
            aload 1 /* loaders */
        59: .line 4095
            ldc "refresh"
        60: .line 4096
            new org.hibernate.loader.entity.CascadeEntityLoader
            dup
            aload 0 /* this */
            getstatic org.hibernate.engine.spi.CascadingActions.REFRESH:Lorg/hibernate/engine/spi/CascadingAction;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokespecial org.hibernate.loader.entity.CascadeEntityLoader.<init>:(Lorg/hibernate/persister/entity/OuterJoinLoadable;Lorg/hibernate/engine/spi/CascadingAction;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
        61: .line 4094
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        62: .line 4098
            return
        end local 3 // boolean disableForUpdate
        end local 2 // org.hibernate.loader.entity.UniqueEntityLoader readLoader
        end local 1 // java.util.Map loaders
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   63     0              this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            1   63     1           loaders  Ljava/util/Map;
            3   63     2        readLoader  Lorg/hibernate/loader/entity/UniqueEntityLoader;
           10   63     3  disableForUpdate  Z

  protected void createQueryLoader();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4101
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.loaderName:Ljava/lang/String;
            ifnull 2
         1: .line 4102
            aload 0 /* this */
            new org.hibernate.persister.entity.NamedQueryLoader
            dup
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.loaderName:Ljava/lang/String;
            aload 0 /* this */
            invokespecial org.hibernate.persister.entity.NamedQueryLoader.<init>:(Ljava/lang/String;Lorg/hibernate/persister/entity/EntityPersister;)V
            putfield org.hibernate.persister.entity.AbstractEntityPersister.queryLoader:Lorg/hibernate/loader/entity/UniqueEntityLoader;
         2: .line 4104
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.Object load(java.io.Serializable, java.lang.Object, org.hibernate.LockMode, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/io/Serializable;Ljava/lang/Object;Lorg/hibernate/LockMode;Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.io.Serializable id
        start local 2 // java.lang.Object optionalObject
        start local 3 // org.hibernate.LockMode lockMode
        start local 4 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 4111
            aload 0 /* this */
            aload 1 /* id */
            aload 2 /* optionalObject */
            new org.hibernate.LockOptions
            dup
            invokespecial org.hibernate.LockOptions.<init>:()V
            aload 3 /* lockMode */
            invokevirtual org.hibernate.LockOptions.setLockMode:(Lorg/hibernate/LockMode;)Lorg/hibernate/LockOptions;
            aload 4 /* session */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.load:(Ljava/io/Serializable;Ljava/lang/Object;Lorg/hibernate/LockOptions;Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/lang/Object;
            areturn
        end local 4 // org.hibernate.engine.spi.SessionImplementor session
        end local 3 // org.hibernate.LockMode lockMode
        end local 2 // java.lang.Object optionalObject
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1              id  Ljava/io/Serializable;
            0    1     2  optionalObject  Ljava/lang/Object;
            0    1     3        lockMode  Lorg/hibernate/LockMode;
            0    1     4         session  Lorg/hibernate/engine/spi/SessionImplementor;
    MethodParameters:
                Name  Flags
      id              
      optionalObject  
      lockMode        
      session         

  public java.lang.Object load(java.io.Serializable, java.lang.Object, org.hibernate.LockOptions, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/io/Serializable;Ljava/lang/Object;Lorg/hibernate/LockOptions;Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.io.Serializable id
        start local 2 // java.lang.Object optionalObject
        start local 3 // org.hibernate.LockOptions lockOptions
        start local 4 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 4121
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 2
         1: .line 4122
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Fetching entity: {0}"
            aload 0 /* this */
            aload 1 /* id */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracev:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 4125
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* lockOptions */
            aload 4 /* session */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getAppropriateLoader:(Lorg/hibernate/LockOptions;Lorg/hibernate/engine/spi/SessionImplementor;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
            astore 5 /* loader */
        start local 5 // org.hibernate.loader.entity.UniqueEntityLoader loader
         3: .line 4126
            aload 5 /* loader */
            aload 1 /* id */
            aload 2 /* optionalObject */
            aload 4 /* session */
            aload 3 /* lockOptions */
            invokeinterface org.hibernate.loader.entity.UniqueEntityLoader.load:(Ljava/io/Serializable;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;Lorg/hibernate/LockOptions;)Ljava/lang/Object;
            areturn
        end local 5 // org.hibernate.loader.entity.UniqueEntityLoader loader
        end local 4 // org.hibernate.engine.spi.SessionImplementor session
        end local 3 // org.hibernate.LockOptions lockOptions
        end local 2 // java.lang.Object optionalObject
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    4     1              id  Ljava/io/Serializable;
            0    4     2  optionalObject  Ljava/lang/Object;
            0    4     3     lockOptions  Lorg/hibernate/LockOptions;
            0    4     4         session  Lorg/hibernate/engine/spi/SessionImplementor;
            3    4     5          loader  Lorg/hibernate/loader/entity/UniqueEntityLoader;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                Name  Flags
      id              
      optionalObject  
      lockOptions     
      session         

  public void registerAffectingFetchProfile(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String fetchProfileName
         0: .line 4130
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.affectingFetchProfileNames:Ljava/util/Set;
            aload 1 /* fetchProfileName */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         1: .line 4131
            return
        end local 1 // java.lang.String fetchProfileName
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    2     1  fetchProfileName  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      fetchProfileName  

  private boolean isAffectedByEntityGraph(org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Lorg/hibernate/engine/spi/SessionImplementor;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 4134
            aload 1 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.getFetchGraph:()Ljavax/persistence/EntityGraph;
            ifnonnull 3
            aload 1 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
         1: .line 4135
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.getLoadGraph:()Ljavax/persistence/EntityGraph;
            ifnonnull 3
         2: .line 4134
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 1 // org.hibernate.engine.spi.SessionImplementor session
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    4     1  session  Lorg/hibernate/engine/spi/SessionImplementor;
    MethodParameters:
         Name  Flags
      session  

  private boolean isAffectedByEnabledFetchProfiles(org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Lorg/hibernate/engine/spi/SessionImplementor;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 4139
            aload 1 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.getEnabledFetchProfileNames:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.engine.spi.SessionImplementor top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* s */
        start local 2 // java.lang.String s
         2: .line 4140
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.affectingFetchProfileNames:Ljava/util/Set;
            aload 2 /* s */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 4141
            iconst_1
            ireturn
        end local 2 // java.lang.String s
         4: .line 4139
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 4144
            iconst_0
            ireturn
        end local 1 // org.hibernate.engine.spi.SessionImplementor session
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    6     1  session  Lorg/hibernate/engine/spi/SessionImplementor;
            2    4     2        s  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      session  

  private boolean isAffectedByEnabledFilters(org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Lorg/hibernate/engine/spi/SessionImplementor;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 4148
            aload 1 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.hasEnabledFilters:()Z
            ifeq 3
         1: .line 4149
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.filterHelper:Lorg/hibernate/internal/FilterHelper;
            aload 1 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.getEnabledFilters:()Ljava/util/Map;
            invokevirtual org.hibernate.internal.FilterHelper.isAffectedBy:(Ljava/util/Map;)Z
            ifeq 3
         2: .line 4148
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 1 // org.hibernate.engine.spi.SessionImplementor session
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    4     1  session  Lorg/hibernate/engine/spi/SessionImplementor;
    MethodParameters:
         Name  Flags
      session  

  private org.hibernate.loader.entity.UniqueEntityLoader getAppropriateLoader(org.hibernate.LockOptions, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Lorg/hibernate/LockOptions;Lorg/hibernate/engine/spi/SessionImplementor;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.LockOptions lockOptions
        start local 2 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 4153
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.queryLoader:Lorg/hibernate/loader/entity/UniqueEntityLoader;
            ifnull 2
         1: .line 4156
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.queryLoader:Lorg/hibernate/loader/entity/UniqueEntityLoader;
            areturn
         2: .line 4158
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* session */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isAffectedByEnabledFilters:(Lorg/hibernate/engine/spi/SessionImplementor;)Z
            ifeq 4
         3: .line 4161
            aload 0 /* this */
            aload 1 /* lockOptions */
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createEntityLoader:(Lorg/hibernate/LockOptions;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
            areturn
         4: .line 4163
      StackMap locals:
      StackMap stack:
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.getInternalFetchProfile:()Ljava/lang/String;
            ifnull 6
            getstatic org.hibernate.LockMode.UPGRADE:Lorg/hibernate/LockMode;
            aload 1 /* lockOptions */
            invokevirtual org.hibernate.LockOptions.getLockMode:()Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.LockMode.greaterThan:(Lorg/hibernate/LockMode;)Z
            ifeq 6
         5: .line 4167
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getLoaders:()Ljava/util/Map;
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.getInternalFetchProfile:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.loader.entity.UniqueEntityLoader
            areturn
         6: .line 4169
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* session */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isAffectedByEnabledFetchProfiles:(Lorg/hibernate/engine/spi/SessionImplementor;)Z
            ifeq 8
         7: .line 4172
            aload 0 /* this */
            aload 1 /* lockOptions */
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createEntityLoader:(Lorg/hibernate/LockOptions;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
            areturn
         8: .line 4174
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* session */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isAffectedByEntityGraph:(Lorg/hibernate/engine/spi/SessionImplementor;)Z
            ifeq 10
         9: .line 4175
            aload 0 /* this */
            aload 1 /* lockOptions */
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createEntityLoader:(Lorg/hibernate/LockOptions;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
            areturn
        10: .line 4177
      StackMap locals:
      StackMap stack:
            aload 1 /* lockOptions */
            invokevirtual org.hibernate.LockOptions.getTimeOut:()I
            iconst_m1
            if_icmpeq 12
        11: .line 4178
            aload 0 /* this */
            aload 1 /* lockOptions */
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createEntityLoader:(Lorg/hibernate/LockOptions;Lorg/hibernate/engine/spi/LoadQueryInfluencers;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
            areturn
        12: .line 4181
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getLoaders:()Ljava/util/Map;
            aload 1 /* lockOptions */
            invokevirtual org.hibernate.LockOptions.getLockMode:()Lorg/hibernate/LockMode;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.loader.entity.UniqueEntityLoader
            areturn
        end local 2 // org.hibernate.engine.spi.SessionImplementor session
        end local 1 // org.hibernate.LockOptions lockOptions
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   13     1  lockOptions  Lorg/hibernate/LockOptions;
            0   13     2      session  Lorg/hibernate/engine/spi/SessionImplementor;
    MethodParameters:
             Name  Flags
      lockOptions  
      session      

  private boolean isAllNull(java.lang.Object[], int);
    descriptor: ([Ljava/lang/Object;I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object[] array
        start local 2 // int tableNumber
         0: .line 4186
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         1: goto 5
         2: .line 4187
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 3 /* i */
            iload 2 /* tableNumber */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isPropertyOfTable:(II)Z
            ifeq 4
            aload 1 /* array */
            iload 3 /* i */
            aaload
            ifnull 4
         3: .line 4188
            iconst_0
            ireturn
         4: .line 4186
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* i */
            aload 1 /* array */
            arraylength
            if_icmplt 2
        end local 3 // int i
         6: .line 4191
            iconst_1
            ireturn
        end local 2 // int tableNumber
        end local 1 // java.lang.Object[] array
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    7     1        array  [Ljava/lang/Object;
            0    7     2  tableNumber  I
            1    6     3            i  I
    MethodParameters:
             Name  Flags
      array        
      tableNumber  

  public boolean isSubclassPropertyNullable(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int i
         0: .line 4195
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyNullabilityClosure:[Z
            iload 1 /* i */
            baload
            ireturn
        end local 1 // int i
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1     i  I
    MethodParameters:
      Name  Flags
      i     

  protected final boolean[] getPropertiesToUpdate(int[], boolean);
    descriptor: ([IZ)[Z
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int[] dirtyProperties
        start local 2 // boolean hasDirtyCollection
         0: .line 4203
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertySpan:()I
            newarray 4
            astore 3 /* propsToUpdate */
        start local 3 // boolean[] propsToUpdate
         1: .line 4204
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyUpdateability:()[Z
            astore 4 /* updateability */
        start local 4 // boolean[] updateability
         2: .line 4205
            iconst_0
            istore 5 /* j */
        start local 5 // int j
         3: goto 8
         4: .line 4206
      StackMap locals: boolean[] boolean[] int
      StackMap stack:
            aload 1 /* dirtyProperties */
            iload 5 /* j */
            iaload
            istore 6 /* property */
        start local 6 // int property
         5: .line 4207
            aload 4 /* updateability */
            iload 6 /* property */
            baload
            ifeq 7
         6: .line 4208
            aload 3 /* propsToUpdate */
            iload 6 /* property */
            iconst_1
            bastore
        end local 6 // int property
         7: .line 4205
      StackMap locals:
      StackMap stack:
            iinc 5 /* j */ 1
      StackMap locals:
      StackMap stack:
         8: iload 5 /* j */
            aload 1 /* dirtyProperties */
            arraylength
            if_icmplt 4
        end local 5 // int j
         9: .line 4211
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifeq 13
            aload 4 /* updateability */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionProperty:()I
            baload
            ifeq 13
        10: .line 4212
            aload 3 /* propsToUpdate */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionProperty:()I
        11: .line 4213
            aload 1 /* dirtyProperties */
            iload 2 /* hasDirtyCollection */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyVersionability:()[Z
            invokestatic org.hibernate.engine.internal.Versioning.isVersionIncrementRequired:([IZ[Z)Z
        12: .line 4212
            bastore
        13: .line 4215
      StackMap locals:
      StackMap stack:
            aload 3 /* propsToUpdate */
            areturn
        end local 4 // boolean[] updateability
        end local 3 // boolean[] propsToUpdate
        end local 2 // boolean hasDirtyCollection
        end local 1 // int[] dirtyProperties
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   14     0                this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   14     1     dirtyProperties  [I
            0   14     2  hasDirtyCollection  Z
            1   14     3       propsToUpdate  [Z
            2   14     4       updateability  [Z
            3    9     5                   j  I
            5    7     6            property  I
    MethodParameters:
                    Name  Flags
      dirtyProperties     final
      hasDirtyCollection  final

  protected boolean[] getPropertiesToInsert(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)[Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object[] fields
         0: .line 4223
            aload 1 /* fields */
            arraylength
            newarray 4
            astore 2 /* notNull */
        start local 2 // boolean[] notNull
         1: .line 4224
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyInsertability:()[Z
            astore 3 /* insertable */
        start local 3 // boolean[] insertable
         2: .line 4225
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 8
         4: .line 4226
      StackMap locals: boolean[] boolean[] int
      StackMap stack:
            aload 2 /* notNull */
            iload 4 /* i */
            aload 3 /* insertable */
            iload 4 /* i */
            baload
            ifeq 5
            aload 1 /* fields */
            iload 4 /* i */
            aaload
            ifnull 5
            iconst_1
            goto 6
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.Object[] boolean[] boolean[] int
      StackMap stack: boolean[] int
         5: iconst_0
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.Object[] boolean[] boolean[] int
      StackMap stack: boolean[] int int
         6: bastore
         7: .line 4225
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            aload 1 /* fields */
            arraylength
            if_icmplt 4
        end local 4 // int i
         9: .line 4228
            aload 2 /* notNull */
            areturn
        end local 3 // boolean[] insertable
        end local 2 // boolean[] notNull
        end local 1 // java.lang.Object[] fields
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   10     1      fields  [Ljava/lang/Object;
            1   10     2     notNull  [Z
            2   10     3  insertable  [Z
            3    9     4           i  I
    MethodParameters:
        Name  Flags
      fields  

  public int[] findDirty(java.lang.Object[], java.lang.Object[], java.lang.Object, org.hibernate.engine.spi.SessionImplementor);
    descriptor: ([Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)[I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object[] currentState
        start local 2 // java.lang.Object[] previousState
        start local 3 // java.lang.Object entity
        start local 4 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 4244
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getProperties:()[Lorg/hibernate/tuple/NonIdentifierAttribute;
         1: .line 4245
            aload 1 /* currentState */
         2: .line 4246
            aload 2 /* previousState */
         3: .line 4247
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnUpdateable:[[Z
         4: .line 4248
            aload 0 /* this */
            aload 3 /* entity */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasUninitializedLazyProperties:(Ljava/lang/Object;)Z
         5: .line 4249
            aload 4 /* session */
         6: .line 4243
            invokestatic org.hibernate.type.TypeHelper.findDirty:([Lorg/hibernate/tuple/NonIdentifierAttribute;[Ljava/lang/Object;[Ljava/lang/Object;[[ZZLorg/hibernate/engine/spi/SessionImplementor;)[I
            astore 5 /* props */
        start local 5 // int[] props
         7: .line 4251
            aload 5 /* props */
            ifnonnull 9
         8: .line 4252
            aconst_null
            areturn
         9: .line 4255
      StackMap locals: int[]
      StackMap stack:
            aload 0 /* this */
            aload 5 /* props */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.logDirtyProperties:([I)V
        10: .line 4256
            aload 5 /* props */
            areturn
        end local 5 // int[] props
        end local 4 // org.hibernate.engine.spi.SessionImplementor session
        end local 3 // java.lang.Object entity
        end local 2 // java.lang.Object[] previousState
        end local 1 // java.lang.Object[] currentState
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   11     1   currentState  [Ljava/lang/Object;
            0   11     2  previousState  [Ljava/lang/Object;
            0   11     3         entity  Ljava/lang/Object;
            0   11     4        session  Lorg/hibernate/engine/spi/SessionImplementor;
            7   11     5          props  [I
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
               Name  Flags
      currentState   
      previousState  
      entity         
      session        

  public int[] findModified(java.lang.Object[], java.lang.Object[], java.lang.Object, org.hibernate.engine.spi.SessionImplementor);
    descriptor: ([Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)[I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object[] old
        start local 2 // java.lang.Object[] current
        start local 3 // java.lang.Object entity
        start local 4 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 4273
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getProperties:()[Lorg/hibernate/tuple/NonIdentifierAttribute;
         1: .line 4274
            aload 2 /* current */
         2: .line 4275
            aload 1 /* old */
         3: .line 4276
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnUpdateable:[[Z
         4: .line 4277
            aload 0 /* this */
            aload 3 /* entity */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasUninitializedLazyProperties:(Ljava/lang/Object;)Z
         5: .line 4278
            aload 4 /* session */
         6: .line 4272
            invokestatic org.hibernate.type.TypeHelper.findModified:([Lorg/hibernate/tuple/NonIdentifierAttribute;[Ljava/lang/Object;[Ljava/lang/Object;[[ZZLorg/hibernate/engine/spi/SessionImplementor;)[I
            astore 5 /* props */
        start local 5 // int[] props
         7: .line 4280
            aload 5 /* props */
            ifnonnull 9
         8: .line 4281
            aconst_null
            areturn
         9: .line 4284
      StackMap locals: int[]
      StackMap stack:
            aload 0 /* this */
            aload 5 /* props */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.logDirtyProperties:([I)V
        10: .line 4285
            aload 5 /* props */
            areturn
        end local 5 // int[] props
        end local 4 // org.hibernate.engine.spi.SessionImplementor session
        end local 3 // java.lang.Object entity
        end local 2 // java.lang.Object[] current
        end local 1 // java.lang.Object[] old
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   11     1      old  [Ljava/lang/Object;
            0   11     2  current  [Ljava/lang/Object;
            0   11     3   entity  Ljava/lang/Object;
            0   11     4  session  Lorg/hibernate/engine/spi/SessionImplementor;
            7   11     5    props  [I
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
         Name  Flags
      old      
      current  
      entity   
      session  

  protected boolean[] getPropertyUpdateability(java.lang.Object);
    descriptor: (Ljava/lang/Object;)[Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object entity
         0: .line 4294
            aload 0 /* this */
            aload 1 /* entity */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasUninitializedLazyProperties:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 4295
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getNonLazyPropertyUpdateability:()[Z
            goto 3
         2: .line 4296
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyUpdateability:()[Z
         3: .line 4294
      StackMap locals:
      StackMap stack: boolean[]
            areturn
        end local 1 // java.lang.Object entity
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    4     1  entity  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      entity  

  private void logDirtyProperties(int[]);
    descriptor: ([I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int[] props
         0: .line 4300
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 7
         1: .line 4301
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 4302
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getProperties:()[Lorg/hibernate/tuple/NonIdentifierAttribute;
            aload 1 /* props */
            iload 2 /* i */
            iaload
            aaload
            invokeinterface org.hibernate.tuple.NonIdentifierAttribute.getName:()Ljava/lang/String;
            astore 3 /* propertyName */
        start local 3 // java.lang.String propertyName
         4: .line 4303
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            aload 3 /* propertyName */
            invokestatic org.hibernate.internal.util.StringHelper.qualify:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " is dirty"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.trace:(Ljava/lang/Object;)V
        end local 3 // java.lang.String propertyName
         5: .line 4301
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 1 /* props */
            arraylength
            if_icmplt 3
        end local 2 // int i
         7: .line 4306
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int[] props
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    8     1         props  [I
            2    7     2             i  I
            4    5     3  propertyName  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      props  

  public org.hibernate.engine.spi.SessionFactoryImplementor getFactory();
    descriptor: ()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4309
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public org.hibernate.tuple.entity.EntityMetamodel getEntityMetamodel();
    descriptor: ()Lorg/hibernate/tuple/entity/EntityMetamodel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4313
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean hasCache();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4317
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.cacheAccessStrategy:Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public org.hibernate.cache.spi.access.EntityRegionAccessStrategy getCacheAccessStrategy();
    descriptor: ()Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4321
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.cacheAccessStrategy:Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public org.hibernate.cache.spi.entry.CacheEntryStructure getCacheEntryStructure();
    descriptor: ()Lorg/hibernate/cache/spi/entry/CacheEntryStructure;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4326
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.cacheEntryHelper:Lorg/hibernate/persister/entity/AbstractEntityPersister$CacheEntryHelper;
            invokeinterface org.hibernate.persister.entity.AbstractEntityPersister$CacheEntryHelper.getCacheEntryStructure:()Lorg/hibernate/cache/spi/entry/CacheEntryStructure;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public org.hibernate.cache.spi.entry.CacheEntry buildCacheEntry(java.lang.Object, java.lang.Object[], java.lang.Object, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)Lorg/hibernate/cache/spi/entry/CacheEntry;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object entity
        start local 2 // java.lang.Object[] state
        start local 3 // java.lang.Object version
        start local 4 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 4331
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.cacheEntryHelper:Lorg/hibernate/persister/entity/AbstractEntityPersister$CacheEntryHelper;
            aload 1 /* entity */
            aload 2 /* state */
            aload 3 /* version */
            aload 4 /* session */
            invokeinterface org.hibernate.persister.entity.AbstractEntityPersister$CacheEntryHelper.buildCacheEntry:(Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)Lorg/hibernate/cache/spi/entry/CacheEntry;
            areturn
        end local 4 // org.hibernate.engine.spi.SessionImplementor session
        end local 3 // java.lang.Object version
        end local 2 // java.lang.Object[] state
        end local 1 // java.lang.Object entity
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1   entity  Ljava/lang/Object;
            0    1     2    state  [Ljava/lang/Object;
            0    1     3  version  Ljava/lang/Object;
            0    1     4  session  Lorg/hibernate/engine/spi/SessionImplementor;
    MethodParameters:
         Name  Flags
      entity   
      state    
      version  
      session  

  public boolean hasNaturalIdCache();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4335
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.naturalIdRegionAccessStrategy:Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy getNaturalIdCacheAccessStrategy();
    descriptor: ()Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4339
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.naturalIdRegionAccessStrategy:Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.util.Comparator getVersionComparator();
    descriptor: ()Ljava/util/Comparator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4343
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifeq 1
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionType:()Lorg/hibernate/type/VersionType;
            invokeinterface org.hibernate.type.VersionType.getComparator:()Ljava/util/Comparator;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: java.util.Comparator
         2: areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public final java.lang.String getEntityName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4348
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getName:()Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public org.hibernate.type.EntityType getEntityType();
    descriptor: ()Lorg/hibernate/type/EntityType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4352
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getEntityType:()Lorg/hibernate/type/EntityType;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean isPolymorphic();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4356
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.isPolymorphic:()Z
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean isInherited();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4360
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.isInherited:()Z
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean hasCascades();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4364
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.hasCascades:()Z
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean hasIdentifierProperty();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4368
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getIdentifierProperty:()Lorg/hibernate/tuple/IdentifierProperty;
            invokevirtual org.hibernate.tuple.IdentifierProperty.isVirtual:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public org.hibernate.type.VersionType getVersionType();
    descriptor: ()Lorg/hibernate/type/VersionType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4372
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.locateVersionType:()Lorg/hibernate/type/Type;
            checkcast org.hibernate.type.VersionType
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  private org.hibernate.type.Type locateVersionType();
    descriptor: ()Lorg/hibernate/type/Type;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4376
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getVersionProperty:()Lorg/hibernate/tuple/entity/VersionProperty;
            ifnonnull 2
         1: .line 4377
            aconst_null
            goto 3
         2: .line 4378
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getVersionProperty:()Lorg/hibernate/tuple/entity/VersionProperty;
            invokevirtual org.hibernate.tuple.entity.VersionProperty.getType:()Lorg/hibernate/type/Type;
         3: .line 4376
      StackMap locals:
      StackMap stack: org.hibernate.type.Type
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public int getVersionProperty();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4382
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getVersionPropertyIndex:()I
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean isVersioned();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4386
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.isVersioned:()Z
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean isIdentifierAssignedByInsert();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4390
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getIdentifierProperty:()Lorg/hibernate/tuple/IdentifierProperty;
            invokevirtual org.hibernate.tuple.IdentifierProperty.isIdentifierAssignedByInsert:()Z
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean hasLazyProperties();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4394
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.hasLazyProperties:()Z
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public void afterReassociate(java.lang.Object, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object entity
        start local 2 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 4408
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityMetamodel:()Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getInstrumentationMetadata:()Lorg/hibernate/bytecode/spi/EntityInstrumentationMetadata;
            invokeinterface org.hibernate.bytecode.spi.EntityInstrumentationMetadata.isInstrumented:()Z
            ifeq 12
         1: .line 4409
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityMetamodel:()Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getInstrumentationMetadata:()Lorg/hibernate/bytecode/spi/EntityInstrumentationMetadata;
            aload 1 /* entity */
            invokeinterface org.hibernate.bytecode.spi.EntityInstrumentationMetadata.extractInterceptor:(Ljava/lang/Object;)Lorg/hibernate/bytecode/instrumentation/spi/FieldInterceptor;
            astore 3 /* interceptor */
        start local 3 // org.hibernate.bytecode.instrumentation.spi.FieldInterceptor interceptor
         2: .line 4410
            aload 3 /* interceptor */
            ifnull 5
         3: .line 4411
            aload 3 /* interceptor */
            aload 2 /* session */
            invokeinterface org.hibernate.bytecode.instrumentation.spi.FieldInterceptor.setSession:(Lorg/hibernate/engine/spi/SessionImplementor;)V
         4: .line 4412
            goto 12
         5: .line 4414
      StackMap locals: org.hibernate.bytecode.instrumentation.spi.FieldInterceptor
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityMetamodel:()Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getInstrumentationMetadata:()Lorg/hibernate/bytecode/spi/EntityInstrumentationMetadata;
         6: .line 4415
            aload 1 /* entity */
         7: .line 4416
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
         8: .line 4417
            aconst_null
         9: .line 4418
            aload 2 /* session */
        10: .line 4414
            invokeinterface org.hibernate.bytecode.spi.EntityInstrumentationMetadata.injectInterceptor:(Ljava/lang/Object;Ljava/lang/String;Ljava/util/Set;Lorg/hibernate/engine/spi/SessionImplementor;)Lorg/hibernate/bytecode/instrumentation/spi/FieldInterceptor;
            astore 4 /* fieldInterceptor */
        start local 4 // org.hibernate.bytecode.instrumentation.spi.FieldInterceptor fieldInterceptor
        11: .line 4420
            aload 4 /* fieldInterceptor */
            invokeinterface org.hibernate.bytecode.instrumentation.spi.FieldInterceptor.dirty:()V
        end local 4 // org.hibernate.bytecode.instrumentation.spi.FieldInterceptor fieldInterceptor
        end local 3 // org.hibernate.bytecode.instrumentation.spi.FieldInterceptor interceptor
        12: .line 4424
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* entity */
            aload 2 /* session */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.handleNaturalIdReattachment:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)V
        13: .line 4425
            return
        end local 2 // org.hibernate.engine.spi.SessionImplementor session
        end local 1 // java.lang.Object entity
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   14     0              this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   14     1            entity  Ljava/lang/Object;
            0   14     2           session  Lorg/hibernate/engine/spi/SessionImplementor;
            2   12     3       interceptor  Lorg/hibernate/bytecode/instrumentation/spi/FieldInterceptor;
           11   12     4  fieldInterceptor  Lorg/hibernate/bytecode/instrumentation/spi/FieldInterceptor;
    MethodParameters:
         Name  Flags
      entity   
      session  

  private void handleNaturalIdReattachment(java.lang.Object, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object entity
        start local 2 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 4428
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasNaturalIdentifier:()Z
            ifne 2
         1: .line 4429
            return
         2: .line 4432
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityMetamodel:()Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.hasImmutableNaturalId:()Z
            ifeq 4
         3: .line 4435
            return
         4: .line 4438
      StackMap locals:
      StackMap stack:
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getPersistenceContext:()Lorg/hibernate/engine/spi/PersistenceContext;
            invokeinterface org.hibernate.engine.spi.PersistenceContext.getNaturalIdHelper:()Lorg/hibernate/engine/spi/PersistenceContext$NaturalIdHelper;
            astore 3 /* naturalIdHelper */
        start local 3 // org.hibernate.engine.spi.PersistenceContext$NaturalIdHelper naturalIdHelper
         5: .line 4439
            aload 0 /* this */
            aload 1 /* entity */
            aload 2 /* session */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/io/Serializable;
            astore 4 /* id */
        start local 4 // java.io.Serializable id
         6: .line 4444
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getPersistenceContext:()Lorg/hibernate/engine/spi/PersistenceContext;
            aload 4 /* id */
            aload 0 /* this */
            invokeinterface org.hibernate.engine.spi.PersistenceContext.getDatabaseSnapshot:(Ljava/io/Serializable;Lorg/hibernate/persister/entity/EntityPersister;)[Ljava/lang/Object;
            astore 6 /* entitySnapshot */
        start local 6 // java.lang.Object[] entitySnapshot
         7: .line 4445
            aload 6 /* entitySnapshot */
            getstatic org.hibernate.engine.internal.StatefulPersistenceContext.NO_ROW:Ljava/lang/Object;
            if_acmpne 10
         8: .line 4446
            aconst_null
            astore 5 /* naturalIdSnapshot */
        start local 5 // java.lang.Object[] naturalIdSnapshot
         9: .line 4447
            goto 11
        end local 5 // java.lang.Object[] naturalIdSnapshot
        10: .line 4449
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.Object org.hibernate.engine.spi.SessionImplementor org.hibernate.engine.spi.PersistenceContext$NaturalIdHelper java.io.Serializable top java.lang.Object[]
      StackMap stack:
            aload 3 /* naturalIdHelper */
            aload 6 /* entitySnapshot */
            aload 0 /* this */
            invokeinterface org.hibernate.engine.spi.PersistenceContext$NaturalIdHelper.extractNaturalIdValues:([Ljava/lang/Object;Lorg/hibernate/persister/entity/EntityPersister;)[Ljava/lang/Object;
            astore 5 /* naturalIdSnapshot */
        start local 5 // java.lang.Object[] naturalIdSnapshot
        11: .line 4452
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.Object org.hibernate.engine.spi.SessionImplementor org.hibernate.engine.spi.PersistenceContext$NaturalIdHelper java.io.Serializable java.lang.Object[] java.lang.Object[]
      StackMap stack:
            aload 3 /* naturalIdHelper */
            aload 0 /* this */
            aload 4 /* id */
            aload 5 /* naturalIdSnapshot */
            invokeinterface org.hibernate.engine.spi.PersistenceContext$NaturalIdHelper.removeSharedNaturalIdCrossReference:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;[Ljava/lang/Object;)V
        12: .line 4453
            aload 3 /* naturalIdHelper */
        13: .line 4454
            aload 0 /* this */
        14: .line 4455
            aload 4 /* id */
        15: .line 4456
            aload 3 /* naturalIdHelper */
            aload 1 /* entity */
            aload 0 /* this */
            invokeinterface org.hibernate.engine.spi.PersistenceContext$NaturalIdHelper.extractNaturalIdValues:(Ljava/lang/Object;Lorg/hibernate/persister/entity/EntityPersister;)[Ljava/lang/Object;
        16: .line 4457
            aload 5 /* naturalIdSnapshot */
        17: .line 4458
            getstatic org.hibernate.engine.spi.CachedNaturalIdValueSource.UPDATE:Lorg/hibernate/engine/spi/CachedNaturalIdValueSource;
        18: .line 4453
            invokeinterface org.hibernate.engine.spi.PersistenceContext$NaturalIdHelper.manageLocalNaturalIdCrossReference:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/io/Serializable;[Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/engine/spi/CachedNaturalIdValueSource;)V
        19: .line 4460
            return
        end local 6 // java.lang.Object[] entitySnapshot
        end local 5 // java.lang.Object[] naturalIdSnapshot
        end local 4 // java.io.Serializable id
        end local 3 // org.hibernate.engine.spi.PersistenceContext$NaturalIdHelper naturalIdHelper
        end local 2 // org.hibernate.engine.spi.SessionImplementor session
        end local 1 // java.lang.Object entity
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   20     0               this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   20     1             entity  Ljava/lang/Object;
            0   20     2            session  Lorg/hibernate/engine/spi/SessionImplementor;
            5   20     3    naturalIdHelper  Lorg/hibernate/engine/spi/PersistenceContext$NaturalIdHelper;
            6   20     4                 id  Ljava/io/Serializable;
            9   10     5  naturalIdSnapshot  [Ljava/lang/Object;
           11   20     5  naturalIdSnapshot  [Ljava/lang/Object;
            7   20     6     entitySnapshot  [Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      entity   
      session  

  public java.lang.Boolean isTransient(java.lang.Object, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/lang/Boolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object entity
        start local 2 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 4464
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.canExtractIdOutOfEntity:()Z
            ifeq 3
         1: .line 4465
            aload 0 /* this */
            aload 1 /* entity */
            aload 2 /* session */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/io/Serializable;
            astore 3 /* id */
        start local 3 // java.io.Serializable id
         2: .line 4466
            goto 4
        end local 3 // java.io.Serializable id
         3: .line 4468
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3 /* id */
        start local 3 // java.io.Serializable id
         4: .line 4472
      StackMap locals: java.io.Serializable
      StackMap stack:
            aload 3 /* id */
            ifnonnull 6
         5: .line 4473
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            areturn
         6: .line 4477
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* entity */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersion:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* version */
        start local 4 // java.lang.Object version
         7: .line 4478
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifeq 13
         8: .line 4481
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getVersionProperty:()Lorg/hibernate/tuple/entity/VersionProperty;
         9: .line 4482
            invokevirtual org.hibernate.tuple.entity.VersionProperty.getUnsavedValue:()Lorg/hibernate/engine/spi/VersionValue;
            aload 4 /* version */
            invokevirtual org.hibernate.engine.spi.VersionValue.isUnsaved:(Ljava/lang/Object;)Ljava/lang/Boolean;
        10: .line 4481
            astore 5 /* result */
        start local 5 // java.lang.Boolean result
        11: .line 4483
            aload 5 /* result */
            ifnull 13
        12: .line 4484
            aload 5 /* result */
            areturn
        end local 5 // java.lang.Boolean result
        13: .line 4489
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getIdentifierProperty:()Lorg/hibernate/tuple/IdentifierProperty;
        14: .line 4490
            invokevirtual org.hibernate.tuple.IdentifierProperty.getUnsavedValue:()Lorg/hibernate/engine/spi/IdentifierValue;
            aload 3 /* id */
            invokevirtual org.hibernate.engine.spi.IdentifierValue.isUnsaved:(Ljava/lang/Object;)Ljava/lang/Boolean;
        15: .line 4489
            astore 5 /* result */
        start local 5 // java.lang.Boolean result
        16: .line 4491
            aload 5 /* result */
            ifnull 18
        17: .line 4492
            aload 5 /* result */
            areturn
        18: .line 4496
      StackMap locals: java.lang.Boolean
      StackMap stack:
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getCacheMode:()Lorg/hibernate/CacheMode;
            invokevirtual org.hibernate.CacheMode.isGetEnabled:()Z
            ifeq 23
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasCache:()Z
            ifeq 23
        19: .line 4497
            aload 2 /* session */
            aload 3 /* id */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootEntityName:()Ljava/lang/String;
            invokeinterface org.hibernate.engine.spi.SessionImplementor.generateCacheKey:(Ljava/io/Serializable;Lorg/hibernate/type/Type;Ljava/lang/String;)Lorg/hibernate/cache/spi/CacheKey;
            astore 6 /* ck */
        start local 6 // org.hibernate.cache.spi.CacheKey ck
        20: .line 4498
            aload 2 /* session */
            aload 6 /* ck */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getCacheAccessStrategy:()Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;
            invokestatic org.hibernate.engine.internal.CacheHelper.fromSharedCache:(Lorg/hibernate/engine/spi/SessionImplementor;Lorg/hibernate/cache/spi/CacheKey;Lorg/hibernate/cache/spi/access/RegionAccessStrategy;)Ljava/io/Serializable;
            astore 7 /* ce */
        start local 7 // java.lang.Object ce
        21: .line 4499
            aload 7 /* ce */
            ifnull 23
        22: .line 4500
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            areturn
        end local 7 // java.lang.Object ce
        end local 6 // org.hibernate.cache.spi.CacheKey ck
        23: .line 4504
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 5 // java.lang.Boolean result
        end local 4 // java.lang.Object version
        end local 3 // java.io.Serializable id
        end local 2 // org.hibernate.engine.spi.SessionImplementor session
        end local 1 // java.lang.Object entity
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   24     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   24     1   entity  Ljava/lang/Object;
            0   24     2  session  Lorg/hibernate/engine/spi/SessionImplementor;
            2    3     3       id  Ljava/io/Serializable;
            4   24     3       id  Ljava/io/Serializable;
            7   24     4  version  Ljava/lang/Object;
           11   13     5   result  Ljava/lang/Boolean;
           16   24     5   result  Ljava/lang/Boolean;
           20   23     6       ck  Lorg/hibernate/cache/spi/CacheKey;
           21   23     7       ce  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
         Name  Flags
      entity   
      session  

  public boolean hasCollections();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4508
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.hasCollections:()Z
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean hasMutableProperties();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4512
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.hasMutableProperties:()Z
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean isMutable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4516
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.isMutable:()Z
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  private boolean isModifiableEntity(org.hibernate.engine.spi.EntityEntry);
    descriptor: (Lorg/hibernate/engine/spi/EntityEntry;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.engine.spi.EntityEntry entry
         0: .line 4521
            aload 1 /* entry */
            ifnonnull 1
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isMutable:()Z
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* entry */
            invokevirtual org.hibernate.engine.spi.EntityEntry.isModifiableEntity:()Z
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // org.hibernate.engine.spi.EntityEntry entry
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    3     1  entry  Lorg/hibernate/engine/spi/EntityEntry;
    MethodParameters:
       Name  Flags
      entry  

  public boolean isAbstract();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4525
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.isAbstract:()Z
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean hasSubclasses();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4529
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.hasSubclasses:()Z
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean hasProxy();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4533
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.isLazy:()Z
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public org.hibernate.id.IdentifierGenerator getIdentifierGenerator();
    descriptor: ()Lorg/hibernate/id/IdentifierGenerator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4537
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getIdentifierProperty:()Lorg/hibernate/tuple/IdentifierProperty;
            invokevirtual org.hibernate.tuple.IdentifierProperty.getIdentifierGenerator:()Lorg/hibernate/id/IdentifierGenerator;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
    Exceptions:
      throws org.hibernate.HibernateException

  public java.lang.String getRootEntityName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4541
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getRootName:()Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public org.hibernate.metadata.ClassMetadata getClassMetadata();
    descriptor: ()Lorg/hibernate/metadata/ClassMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4545
            aload 0 /* this */
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.String getMappedSuperclass();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4549
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getSuperclass:()Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean isExplicitPolymorphism();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4553
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.isExplicitPolymorphism:()Z
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected boolean useDynamicUpdate();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4557
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.isDynamicUpdate:()Z
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected boolean useDynamicInsert();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4561
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.isDynamicInsert:()Z
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected boolean hasEmbeddedCompositeIdentifier();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4565
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getIdentifierProperty:()Lorg/hibernate/tuple/IdentifierProperty;
            invokevirtual org.hibernate.tuple.IdentifierProperty.isEmbedded:()Z
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean canExtractIdOutOfEntity();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4569
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasIdentifierProperty:()Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasEmbeddedCompositeIdentifier:()Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasIdentifierMapper:()Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  private boolean hasIdentifierMapper();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4573
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getIdentifierProperty:()Lorg/hibernate/tuple/IdentifierProperty;
            invokevirtual org.hibernate.tuple.IdentifierProperty.hasIdentifierMapper:()Z
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.String[] getKeyColumnNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4577
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnNames:()[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4581
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

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

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

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

  public org.hibernate.type.Type getPropertyType(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/type/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String propertyName
         0: .line 4597
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyMapping:Lorg/hibernate/persister/entity/BasicEntityPropertyMapping;
            aload 1 /* propertyName */
            invokevirtual org.hibernate.persister.entity.BasicEntityPropertyMapping.toType:(Ljava/lang/String;)Lorg/hibernate/type/Type;
            areturn
        end local 1 // java.lang.String propertyName
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  propertyName  Ljava/lang/String;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
              Name  Flags
      propertyName  

  public org.hibernate.type.Type getType();
    descriptor: ()Lorg/hibernate/type/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4601
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getEntityType:()Lorg/hibernate/type/EntityType;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean isSelectBeforeUpdateRequired();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4605
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.isSelectBeforeUpdate:()Z
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected final org.hibernate.engine.OptimisticLockStyle optimisticLockStyle();
    descriptor: ()Lorg/hibernate/engine/OptimisticLockStyle;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4609
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getOptimisticLockStyle:()Lorg/hibernate/engine/OptimisticLockStyle;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.Object createProxy(java.io.Serializable, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/io/Serializable;Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.io.Serializable id
        start local 2 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 4613
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getTuplizer:()Lorg/hibernate/tuple/entity/EntityTuplizer;
            aload 1 /* id */
            aload 2 /* session */
            invokeinterface org.hibernate.tuple.entity.EntityTuplizer.createProxy:(Ljava/io/Serializable;Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/lang/Object;
            areturn
        end local 2 // org.hibernate.engine.spi.SessionImplementor session
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1       id  Ljava/io/Serializable;
            0    1     2  session  Lorg/hibernate/engine/spi/SessionImplementor;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
         Name  Flags
      id       
      session  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4617
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic org.hibernate.internal.util.StringHelper.unqualify:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 4618
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
         2: .line 4617
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public final java.lang.String selectFragment(org.hibernate.persister.entity.Joinable, java.lang.String, java.lang.String, java.lang.String, java.lang.String, boolean);
    descriptor: (Lorg/hibernate/persister/entity/Joinable;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=7, args_size=7
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.persister.entity.Joinable rhs
        start local 2 // java.lang.String rhsAlias
        start local 3 // java.lang.String lhsAlias
        start local 4 // java.lang.String entitySuffix
        start local 5 // java.lang.String collectionSuffix
        start local 6 // boolean includeCollectionColumns
         0: .line 4628
            aload 0 /* this */
            aload 3 /* lhsAlias */
            aload 4 /* entitySuffix */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.selectFragment:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 6 // boolean includeCollectionColumns
        end local 5 // java.lang.String collectionSuffix
        end local 4 // java.lang.String entitySuffix
        end local 3 // java.lang.String lhsAlias
        end local 2 // java.lang.String rhsAlias
        end local 1 // org.hibernate.persister.entity.Joinable rhs
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    1     0                      this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1                       rhs  Lorg/hibernate/persister/entity/Joinable;
            0    1     2                  rhsAlias  Ljava/lang/String;
            0    1     3                  lhsAlias  Ljava/lang/String;
            0    1     4              entitySuffix  Ljava/lang/String;
            0    1     5          collectionSuffix  Ljava/lang/String;
            0    1     6  includeCollectionColumns  Z
    MethodParameters:
                          Name  Flags
      rhs                       
      rhsAlias                  
      lhsAlias                  
      entitySuffix              
      collectionSuffix          
      includeCollectionColumns  

  public boolean isInstrumented();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4632
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.isInstrumented:()Z
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean hasInsertGeneratedProperties();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4636
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.hasInsertGeneratedValues:()Z
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean hasUpdateGeneratedProperties();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4640
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.hasUpdateGeneratedValues:()Z
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean isVersionPropertyGenerated();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4644
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifeq 1
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityMetamodel:()Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.isVersionGenerated:()Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean isVersionPropertyInsertable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4648
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifeq 1
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyInsertability:()[Z
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionProperty:()I
            baload
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public void afterInitialize(java.lang.Object, boolean, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/lang/Object;ZLorg/hibernate/engine/spi/SessionImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object entity
        start local 2 // boolean lazyPropertiesAreUnfetched
        start local 3 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 4652
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityTuplizer:()Lorg/hibernate/tuple/entity/EntityTuplizer;
            aload 1 /* entity */
            iload 2 /* lazyPropertiesAreUnfetched */
            aload 3 /* session */
            invokeinterface org.hibernate.tuple.entity.EntityTuplizer.afterInitialize:(Ljava/lang/Object;ZLorg/hibernate/engine/spi/SessionImplementor;)V
         1: .line 4653
            return
        end local 3 // org.hibernate.engine.spi.SessionImplementor session
        end local 2 // boolean lazyPropertiesAreUnfetched
        end local 1 // java.lang.Object entity
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0    2     0                        this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    2     1                      entity  Ljava/lang/Object;
            0    2     2  lazyPropertiesAreUnfetched  Z
            0    2     3                     session  Lorg/hibernate/engine/spi/SessionImplementor;
    MethodParameters:
                            Name  Flags
      entity                      
      lazyPropertiesAreUnfetched  
      session                     

  public java.lang.String[] getPropertyNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4656
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertyNames:()[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public org.hibernate.type.Type[] getPropertyTypes();
    descriptor: ()[Lorg/hibernate/type/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4660
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertyTypes:()[Lorg/hibernate/type/Type;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean[] getPropertyLaziness();
    descriptor: ()[Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4664
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertyLaziness:()[Z
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean[] getPropertyUpdateability();
    descriptor: ()[Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4668
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertyUpdateability:()[Z
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean[] getPropertyCheckability();
    descriptor: ()[Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4672
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertyCheckability:()[Z
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean[] getNonLazyPropertyUpdateability();
    descriptor: ()[Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4676
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getNonlazyPropertyUpdateability:()[Z
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean[] getPropertyInsertability();
    descriptor: ()[Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4680
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertyInsertability:()[Z
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public org.hibernate.engine.spi.ValueInclusion[] getPropertyInsertGenerationInclusions();
    descriptor: ()[Lorg/hibernate/engine/spi/ValueInclusion;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4685
            aconst_null
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public org.hibernate.engine.spi.ValueInclusion[] getPropertyUpdateGenerationInclusions();
    descriptor: ()[Lorg/hibernate/engine/spi/ValueInclusion;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4690
            aconst_null
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public boolean[] getPropertyNullability();
    descriptor: ()[Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4694
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertyNullability:()[Z
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean[] getPropertyVersionability();
    descriptor: ()[Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4698
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertyVersionability:()[Z
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public org.hibernate.engine.spi.CascadeStyle[] getPropertyCascadeStyles();
    descriptor: ()[Lorg/hibernate/engine/spi/CascadeStyle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4702
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getCascadeStyles:()[Lorg/hibernate/engine/spi/CascadeStyle;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public final java.lang.Class getMappedClass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4706
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityTuplizer:()Lorg/hibernate/tuple/entity/EntityTuplizer;
            invokeinterface org.hibernate.tuple.entity.EntityTuplizer.getMappedClass:()Ljava/lang/Class;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public boolean implementsLifecycle();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4710
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityTuplizer:()Lorg/hibernate/tuple/entity/EntityTuplizer;
            invokeinterface org.hibernate.tuple.entity.EntityTuplizer.isLifecycleImplementor:()Z
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.Class getConcreteProxyClass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4714
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityTuplizer:()Lorg/hibernate/tuple/entity/EntityTuplizer;
            invokeinterface org.hibernate.tuple.entity.EntityTuplizer.getConcreteProxyClass:()Ljava/lang/Class;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public void setPropertyValues(java.lang.Object, java.lang.Object[]);
    descriptor: (Ljava/lang/Object;[Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object object
        start local 2 // java.lang.Object[] values
         0: .line 4718
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityTuplizer:()Lorg/hibernate/tuple/entity/EntityTuplizer;
            aload 1 /* object */
            aload 2 /* values */
            invokeinterface org.hibernate.tuple.entity.EntityTuplizer.setPropertyValues:(Ljava/lang/Object;[Ljava/lang/Object;)V
         1: .line 4719
            return
        end local 2 // java.lang.Object[] values
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    2     1  object  Ljava/lang/Object;
            0    2     2  values  [Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  
      values  

  public void setPropertyValue(java.lang.Object, int, java.lang.Object);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object object
        start local 2 // int i
        start local 3 // java.lang.Object value
         0: .line 4722
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityTuplizer:()Lorg/hibernate/tuple/entity/EntityTuplizer;
            aload 1 /* object */
            iload 2 /* i */
            aload 3 /* value */
            invokeinterface org.hibernate.tuple.entity.EntityTuplizer.setPropertyValue:(Ljava/lang/Object;ILjava/lang/Object;)V
         1: .line 4723
            return
        end local 3 // java.lang.Object value
        end local 2 // int i
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    2     1  object  Ljava/lang/Object;
            0    2     2       i  I
            0    2     3   value  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  
      i       
      value   

  public java.lang.Object[] getPropertyValues(java.lang.Object);
    descriptor: (Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object object
         0: .line 4726
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityTuplizer:()Lorg/hibernate/tuple/entity/EntityTuplizer;
            aload 1 /* object */
            invokeinterface org.hibernate.tuple.entity.EntityTuplizer.getPropertyValues:(Ljava/lang/Object;)[Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public java.lang.Object getPropertyValue(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object object
        start local 2 // int i
         0: .line 4731
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityTuplizer:()Lorg/hibernate/tuple/entity/EntityTuplizer;
            aload 1 /* object */
            iload 2 /* i */
            invokeinterface org.hibernate.tuple.entity.EntityTuplizer.getPropertyValue:(Ljava/lang/Object;I)Ljava/lang/Object;
            areturn
        end local 2 // int i
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  object  Ljava/lang/Object;
            0    1     2       i  I
    MethodParameters:
        Name  Flags
      object  
      i       

  public java.lang.Object getPropertyValue(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object object
        start local 2 // java.lang.String propertyName
         0: .line 4736
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityTuplizer:()Lorg/hibernate/tuple/entity/EntityTuplizer;
            aload 1 /* object */
            aload 2 /* propertyName */
            invokeinterface org.hibernate.tuple.entity.EntityTuplizer.getPropertyValue:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.String propertyName
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1        object  Ljava/lang/Object;
            0    1     2  propertyName  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      object        
      propertyName  

  public java.io.Serializable getIdentifier(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/io/Serializable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object object
         0: .line 4741
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityTuplizer:()Lorg/hibernate/tuple/entity/EntityTuplizer;
            aload 1 /* object */
            aconst_null
            invokeinterface org.hibernate.tuple.entity.EntityTuplizer.getIdentifier:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/io/Serializable;
            areturn
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public java.io.Serializable getIdentifier(java.lang.Object, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/io/Serializable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object entity
        start local 2 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 4746
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityTuplizer:()Lorg/hibernate/tuple/entity/EntityTuplizer;
            aload 1 /* entity */
            aload 2 /* session */
            invokeinterface org.hibernate.tuple.entity.EntityTuplizer.getIdentifier:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/io/Serializable;
            areturn
        end local 2 // org.hibernate.engine.spi.SessionImplementor session
        end local 1 // java.lang.Object entity
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1   entity  Ljava/lang/Object;
            0    1     2  session  Lorg/hibernate/engine/spi/SessionImplementor;
    MethodParameters:
         Name  Flags
      entity   
      session  

  public void setIdentifier(java.lang.Object, java.io.Serializable, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/lang/Object;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SessionImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object entity
        start local 2 // java.io.Serializable id
        start local 3 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 4751
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityTuplizer:()Lorg/hibernate/tuple/entity/EntityTuplizer;
            aload 1 /* entity */
            aload 2 /* id */
            aload 3 /* session */
            invokeinterface org.hibernate.tuple.entity.EntityTuplizer.setIdentifier:(Ljava/lang/Object;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SessionImplementor;)V
         1: .line 4752
            return
        end local 3 // org.hibernate.engine.spi.SessionImplementor session
        end local 2 // java.io.Serializable id
        end local 1 // java.lang.Object entity
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    2     1   entity  Ljava/lang/Object;
            0    2     2       id  Ljava/io/Serializable;
            0    2     3  session  Lorg/hibernate/engine/spi/SessionImplementor;
    MethodParameters:
         Name  Flags
      entity   
      id       
      session  

  public java.lang.Object getVersion(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object object
         0: .line 4756
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityTuplizer:()Lorg/hibernate/tuple/entity/EntityTuplizer;
            aload 1 /* object */
            invokeinterface org.hibernate.tuple.entity.EntityTuplizer.getVersion:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public java.lang.Object instantiate(java.io.Serializable, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/io/Serializable;Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.io.Serializable id
        start local 2 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 4761
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityTuplizer:()Lorg/hibernate/tuple/entity/EntityTuplizer;
            aload 1 /* id */
            aload 2 /* session */
            invokeinterface org.hibernate.tuple.entity.EntityTuplizer.instantiate:(Ljava/io/Serializable;Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/lang/Object;
            areturn
        end local 2 // org.hibernate.engine.spi.SessionImplementor session
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1       id  Ljava/io/Serializable;
            0    1     2  session  Lorg/hibernate/engine/spi/SessionImplementor;
    MethodParameters:
         Name  Flags
      id       
      session  

  public boolean isInstance(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object object
         0: .line 4766
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityTuplizer:()Lorg/hibernate/tuple/entity/EntityTuplizer;
            aload 1 /* object */
            invokeinterface org.hibernate.tuple.entity.EntityTuplizer.isInstance:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public boolean hasUninitializedLazyProperties(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object object
         0: .line 4771
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityTuplizer:()Lorg/hibernate/tuple/entity/EntityTuplizer;
            aload 1 /* object */
            invokeinterface org.hibernate.tuple.entity.EntityTuplizer.hasUninitializedLazyProperties:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public void resetIdentifier(java.lang.Object, java.io.Serializable, java.lang.Object, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/lang/Object;Ljava/io/Serializable;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object entity
        start local 2 // java.io.Serializable currentId
        start local 3 // java.lang.Object currentVersion
        start local 4 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 4776
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityTuplizer:()Lorg/hibernate/tuple/entity/EntityTuplizer;
            aload 1 /* entity */
            aload 2 /* currentId */
            aload 3 /* currentVersion */
            aload 4 /* session */
            invokeinterface org.hibernate.tuple.entity.EntityTuplizer.resetIdentifier:(Ljava/lang/Object;Ljava/io/Serializable;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)V
         1: .line 4777
            return
        end local 4 // org.hibernate.engine.spi.SessionImplementor session
        end local 3 // java.lang.Object currentVersion
        end local 2 // java.io.Serializable currentId
        end local 1 // java.lang.Object entity
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    2     1          entity  Ljava/lang/Object;
            0    2     2       currentId  Ljava/io/Serializable;
            0    2     3  currentVersion  Ljava/lang/Object;
            0    2     4         session  Lorg/hibernate/engine/spi/SessionImplementor;
    MethodParameters:
                Name  Flags
      entity          
      currentId       
      currentVersion  
      session         

  public org.hibernate.persister.entity.EntityPersister getSubclassEntityPersister(java.lang.Object, org.hibernate.engine.spi.SessionFactoryImplementor);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Lorg/hibernate/persister/entity/EntityPersister;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object instance
        start local 2 // org.hibernate.engine.spi.SessionFactoryImplementor factory
         0: .line 4781
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasSubclasses:()Z
            ifne 2
         1: .line 4782
            aload 0 /* this */
            areturn
         2: .line 4785
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityTuplizer:()Lorg/hibernate/tuple/entity/EntityTuplizer;
         3: .line 4786
            aload 1 /* instance */
         4: .line 4787
            aload 2 /* factory */
         5: .line 4785
            invokeinterface org.hibernate.tuple.entity.EntityTuplizer.determineConcreteSubclassEntityName:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            astore 3 /* concreteEntityName */
        start local 3 // java.lang.String concreteEntityName
         6: .line 4789
            aload 3 /* concreteEntityName */
            ifnull 7
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            aload 3 /* concreteEntityName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 4792
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            areturn
         8: .line 4795
      StackMap locals:
      StackMap stack:
            aload 2 /* factory */
            aload 3 /* concreteEntityName */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getEntityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            areturn
        end local 3 // java.lang.String concreteEntityName
        end local 2 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 1 // java.lang.Object instance
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    9     0                this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    9     1            instance  Ljava/lang/Object;
            0    9     2             factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            6    9     3  concreteEntityName  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      instance  
      factory   

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

  public java.lang.String getTemporaryIdTableName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4805
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.temporaryIdTableName:Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.String getTemporaryIdTableDDL();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4809
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.temporaryIdTableDDL:Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  protected int getPropertySpan();
    descriptor: ()I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4813
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertySpan:()I
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.Object[] getPropertyValuesToInsert(java.lang.Object, java.util.Map, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/lang/Object;Ljava/util/Map;Lorg/hibernate/engine/spi/SessionImplementor;)[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object object
        start local 2 // java.util.Map mergeMap
        start local 3 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 4817
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityTuplizer:()Lorg/hibernate/tuple/entity/EntityTuplizer;
            aload 1 /* object */
            aload 2 /* mergeMap */
            aload 3 /* session */
            invokeinterface org.hibernate.tuple.entity.EntityTuplizer.getPropertyValuesToInsert:(Ljava/lang/Object;Ljava/util/Map;Lorg/hibernate/engine/spi/SessionImplementor;)[Ljava/lang/Object;
            areturn
        end local 3 // org.hibernate.engine.spi.SessionImplementor session
        end local 2 // java.util.Map mergeMap
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1    object  Ljava/lang/Object;
            0    1     2  mergeMap  Ljava/util/Map;
            0    1     3   session  Lorg/hibernate/engine/spi/SessionImplementor;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
          Name  Flags
      object    
      mergeMap  
      session   

  public void processInsertGeneratedProperties(java.io.Serializable, java.lang.Object, java.lang.Object[], org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/io/Serializable;Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.io.Serializable id
        start local 2 // java.lang.Object entity
        start local 3 // java.lang.Object[] state
        start local 4 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 4821
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasInsertGeneratedProperties:()Z
            ifne 2
         1: .line 4822
            new org.hibernate.AssertionFailure
            dup
            ldc "no insert-generated properties"
            invokespecial org.hibernate.AssertionFailure.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 4824
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* id */
            aload 2 /* entity */
            aload 3 /* state */
            aload 4 /* session */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlInsertGeneratedValuesSelectString:Ljava/lang/String;
            getstatic org.hibernate.tuple.GenerationTiming.INSERT:Lorg/hibernate/tuple/GenerationTiming;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.processGeneratedProperties:(Ljava/io/Serializable;Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;Ljava/lang/String;Lorg/hibernate/tuple/GenerationTiming;)V
         3: .line 4825
            return
        end local 4 // org.hibernate.engine.spi.SessionImplementor session
        end local 3 // java.lang.Object[] state
        end local 2 // java.lang.Object entity
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    4     1       id  Ljava/io/Serializable;
            0    4     2   entity  Ljava/lang/Object;
            0    4     3    state  [Ljava/lang/Object;
            0    4     4  session  Lorg/hibernate/engine/spi/SessionImplementor;
    MethodParameters:
         Name  Flags
      id       
      entity   
      state    
      session  

  public void processUpdateGeneratedProperties(java.io.Serializable, java.lang.Object, java.lang.Object[], org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/io/Serializable;Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.io.Serializable id
        start local 2 // java.lang.Object entity
        start local 3 // java.lang.Object[] state
        start local 4 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 4828
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasUpdateGeneratedProperties:()Z
            ifne 2
         1: .line 4829
            new org.hibernate.AssertionFailure
            dup
            ldc "no update-generated properties"
            invokespecial org.hibernate.AssertionFailure.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 4831
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* id */
            aload 2 /* entity */
            aload 3 /* state */
            aload 4 /* session */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlUpdateGeneratedValuesSelectString:Ljava/lang/String;
            getstatic org.hibernate.tuple.GenerationTiming.ALWAYS:Lorg/hibernate/tuple/GenerationTiming;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.processGeneratedProperties:(Ljava/io/Serializable;Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;Ljava/lang/String;Lorg/hibernate/tuple/GenerationTiming;)V
         3: .line 4832
            return
        end local 4 // org.hibernate.engine.spi.SessionImplementor session
        end local 3 // java.lang.Object[] state
        end local 2 // java.lang.Object entity
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    4     1       id  Ljava/io/Serializable;
            0    4     2   entity  Ljava/lang/Object;
            0    4     3    state  [Ljava/lang/Object;
            0    4     4  session  Lorg/hibernate/engine/spi/SessionImplementor;
    MethodParameters:
         Name  Flags
      id       
      entity   
      state    
      session  

  private void processGeneratedProperties(java.io.Serializable, java.lang.Object, java.lang.Object[], org.hibernate.engine.spi.SessionImplementor, java.lang.String, org.hibernate.tuple.GenerationTiming);
    descriptor: (Ljava/io/Serializable;Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;Ljava/lang/String;Lorg/hibernate/tuple/GenerationTiming;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=18, args_size=7
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.io.Serializable id
        start local 2 // java.lang.Object entity
        start local 3 // java.lang.Object[] state
        start local 4 // org.hibernate.engine.spi.SessionImplementor session
        start local 5 // java.lang.String selectionSQL
        start local 6 // org.hibernate.tuple.GenerationTiming matchTiming
         0: .line 4842
            aload 4 /* 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.executeBatch:()V
         1: .line 4845
            aload 4 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
         2: .line 4846
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
         3: .line 4847
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
         4: .line 4848
            aload 5 /* selectionSQL */
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
         5: .line 4845
            astore 7 /* ps */
        start local 7 // java.sql.PreparedStatement ps
         6: .line 4850
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            aload 7 /* ps */
            aload 1 /* id */
            iconst_1
            aload 4 /* session */
            invokeinterface org.hibernate.type.Type.nullSafeSet:(Ljava/sql/PreparedStatement;Ljava/lang/Object;ILorg/hibernate/engine/spi/SessionImplementor;)V
         7: .line 4851
            aload 4 /* 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 7 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.ResultSetReturn.extract:(Ljava/sql/PreparedStatement;)Ljava/sql/ResultSet;
            astore 8 /* rs */
        start local 8 // java.sql.ResultSet rs
         8: .line 4853
            aload 8 /* rs */
            invokeinterface java.sql.ResultSet.next:()Z
            ifne 14
         9: .line 4854
            new org.hibernate.HibernateException
            dup
        10: .line 4855
            new java.lang.StringBuilder
            dup
            ldc "Unable to locate row for retrieval of generated properties: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        11: .line 4856
            aload 0 /* this */
            aload 1 /* id */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 4855
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 4854
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 4859
      StackMap locals: java.sql.PreparedStatement java.sql.ResultSet
      StackMap stack:
            iconst_m1
            istore 9 /* propertyIndex */
        start local 9 // int propertyIndex
        15: .line 4860
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getProperties:()[Lorg/hibernate/tuple/NonIdentifierAttribute;
            dup
            astore 13
            arraylength
            istore 12
            iconst_0
            istore 11
            goto 30
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object java.lang.Object[] org.hibernate.engine.spi.SessionImplementor java.lang.String org.hibernate.tuple.GenerationTiming java.sql.PreparedStatement java.sql.ResultSet int top int int org.hibernate.tuple.NonIdentifierAttribute[]
      StackMap stack:
        16: aload 13
            iload 11
            aaload
            astore 10 /* attribute */
        start local 10 // org.hibernate.tuple.NonIdentifierAttribute attribute
        17: .line 4861
            iinc 9 /* propertyIndex */ 1
        18: .line 4862
            aload 10 /* attribute */
            invokeinterface org.hibernate.tuple.NonIdentifierAttribute.getValueGenerationStrategy:()Lorg/hibernate/tuple/ValueGeneration;
            astore 14 /* valueGeneration */
        start local 14 // org.hibernate.tuple.ValueGeneration valueGeneration
        19: .line 4863
            aload 0 /* this */
            aload 14 /* valueGeneration */
            aload 6 /* matchTiming */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isReadRequired:(Lorg/hibernate/tuple/ValueGeneration;Lorg/hibernate/tuple/GenerationTiming;)Z
            ifeq 29
        20: .line 4864
            aload 10 /* attribute */
            invokeinterface org.hibernate.tuple.NonIdentifierAttribute.getType:()Lorg/hibernate/type/Type;
        21: .line 4865
            aload 8 /* rs */
            aload 0 /* this */
        22: .line 4866
            ldc ""
        23: .line 4867
            iload 9 /* propertyIndex */
        24: .line 4865
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyAliases:(Ljava/lang/String;I)[Ljava/lang/String;
        25: .line 4868
            aload 4 /* session */
            aload 2 /* entity */
        26: .line 4864
            invokeinterface org.hibernate.type.Type.hydrate:(Ljava/sql/ResultSet;[Ljava/lang/String;Lorg/hibernate/engine/spi/SessionImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            astore 15 /* hydratedState */
        start local 15 // java.lang.Object hydratedState
        27: .line 4870
            aload 3 /* state */
            iload 9 /* propertyIndex */
            aload 10 /* attribute */
            invokeinterface org.hibernate.tuple.NonIdentifierAttribute.getType:()Lorg/hibernate/type/Type;
            aload 15 /* hydratedState */
            aload 4 /* session */
            aload 2 /* entity */
            invokeinterface org.hibernate.type.Type.resolve:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            aastore
        28: .line 4871
            aload 0 /* this */
            aload 2 /* entity */
            iload 9 /* propertyIndex */
            aload 3 /* state */
            iload 9 /* propertyIndex */
            aaload
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValue:(Ljava/lang/Object;ILjava/lang/Object;)V
        end local 15 // java.lang.Object hydratedState
        end local 14 // org.hibernate.tuple.ValueGeneration valueGeneration
        end local 10 // org.hibernate.tuple.NonIdentifierAttribute attribute
        29: .line 4860
      StackMap locals:
      StackMap stack:
            iinc 11 1
      StackMap locals:
      StackMap stack:
        30: iload 11
            iload 12
            if_icmplt 16
        end local 9 // int propertyIndex
        31: .line 4881
            goto 36
        32: .line 4882
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object java.lang.Object[] org.hibernate.engine.spi.SessionImplementor java.lang.String org.hibernate.tuple.GenerationTiming java.sql.PreparedStatement java.sql.ResultSet
      StackMap stack: java.lang.Throwable
            astore 16
        33: .line 4883
            aload 8 /* rs */
            ifnull 35
        34: .line 4884
            aload 4 /* 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 8 /* rs */
            aload 7 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        35: .line 4886
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object java.lang.Object[] org.hibernate.engine.spi.SessionImplementor java.lang.String org.hibernate.tuple.GenerationTiming java.sql.PreparedStatement java.sql.ResultSet top top top top top top top java.lang.Throwable
      StackMap stack:
            aload 16
            athrow
        36: .line 4883
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object java.lang.Object[] org.hibernate.engine.spi.SessionImplementor java.lang.String org.hibernate.tuple.GenerationTiming java.sql.PreparedStatement java.sql.ResultSet
      StackMap stack:
            aload 8 /* rs */
            ifnull 42
        37: .line 4884
            aload 4 /* 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 8 /* rs */
            aload 7 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        end local 8 // java.sql.ResultSet rs
        38: .line 4887
            goto 42
        39: .line 4888
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object java.lang.Object[] org.hibernate.engine.spi.SessionImplementor java.lang.String org.hibernate.tuple.GenerationTiming java.sql.PreparedStatement
      StackMap stack: java.lang.Throwable
            astore 17
        40: .line 4889
            aload 4 /* 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 7 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        41: .line 4890
            aload 17
            athrow
        42: .line 4889
      StackMap locals:
      StackMap stack:
            aload 4 /* 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 7 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        end local 7 // java.sql.PreparedStatement ps
        43: .line 4891
            goto 50
        44: .line 4892
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object java.lang.Object[] org.hibernate.engine.spi.SessionImplementor java.lang.String org.hibernate.tuple.GenerationTiming
      StackMap stack: java.sql.SQLException
            astore 7 /* e */
        start local 7 // java.sql.SQLException e
        45: .line 4893
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSQLExceptionHelper:()Lorg/hibernate/engine/jdbc/spi/SqlExceptionHelper;
        46: .line 4894
            aload 7 /* e */
        47: .line 4895
            ldc "unable to select generated column values"
        48: .line 4896
            aload 5 /* selectionSQL */
        49: .line 4893
            invokevirtual org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert:(Ljava/sql/SQLException;Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/JDBCException;
            athrow
        end local 7 // java.sql.SQLException e
        50: .line 4900
      StackMap locals:
      StackMap stack:
            return
        end local 6 // org.hibernate.tuple.GenerationTiming matchTiming
        end local 5 // java.lang.String selectionSQL
        end local 4 // org.hibernate.engine.spi.SessionImplementor session
        end local 3 // java.lang.Object[] state
        end local 2 // java.lang.Object entity
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   51     0             this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   51     1               id  Ljava/io/Serializable;
            0   51     2           entity  Ljava/lang/Object;
            0   51     3            state  [Ljava/lang/Object;
            0   51     4          session  Lorg/hibernate/engine/spi/SessionImplementor;
            0   51     5     selectionSQL  Ljava/lang/String;
            0   51     6      matchTiming  Lorg/hibernate/tuple/GenerationTiming;
            6   43     7               ps  Ljava/sql/PreparedStatement;
            8   38     8               rs  Ljava/sql/ResultSet;
           15   31     9    propertyIndex  I
           17   29    10        attribute  Lorg/hibernate/tuple/NonIdentifierAttribute;
           19   29    14  valueGeneration  Lorg/hibernate/tuple/ValueGeneration;
           27   29    15    hydratedState  Ljava/lang/Object;
           45   50     7                e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           8    32      32  any
           6    39      39  any
           1    43      44  Class java.sql.SQLException
    MethodParameters:
              Name  Flags
      id            
      entity        
      state         
      session       
      selectionSQL  
      matchTiming   

  private boolean isReadRequired(org.hibernate.tuple.ValueGeneration, org.hibernate.tuple.GenerationTiming);
    descriptor: (Lorg/hibernate/tuple/ValueGeneration;Lorg/hibernate/tuple/GenerationTiming;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.tuple.ValueGeneration valueGeneration
        start local 2 // org.hibernate.tuple.GenerationTiming matchTiming
         0: .line 4906
            aload 1 /* valueGeneration */
            ifnull 4
         1: .line 4907
            aload 1 /* valueGeneration */
            invokeinterface org.hibernate.tuple.ValueGeneration.getValueGenerator:()Lorg/hibernate/tuple/ValueGenerator;
            ifnonnull 4
         2: .line 4908
            aload 0 /* this */
            aload 1 /* valueGeneration */
            invokeinterface org.hibernate.tuple.ValueGeneration.getGenerationTiming:()Lorg/hibernate/tuple/GenerationTiming;
            aload 2 /* matchTiming */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.timingsMatch:(Lorg/hibernate/tuple/GenerationTiming;Lorg/hibernate/tuple/GenerationTiming;)Z
            ifeq 4
         3: .line 4906
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 2 // org.hibernate.tuple.GenerationTiming matchTiming
        end local 1 // org.hibernate.tuple.ValueGeneration valueGeneration
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    5     1  valueGeneration  Lorg/hibernate/tuple/ValueGeneration;
            0    5     2      matchTiming  Lorg/hibernate/tuple/GenerationTiming;
    MethodParameters:
                 Name  Flags
      valueGeneration  
      matchTiming      

  private boolean timingsMatch(org.hibernate.tuple.GenerationTiming, org.hibernate.tuple.GenerationTiming);
    descriptor: (Lorg/hibernate/tuple/GenerationTiming;Lorg/hibernate/tuple/GenerationTiming;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.tuple.GenerationTiming timing
        start local 2 // org.hibernate.tuple.GenerationTiming matchTiming
         0: .line 4913
            aload 2 /* matchTiming */
            getstatic org.hibernate.tuple.GenerationTiming.INSERT:Lorg/hibernate/tuple/GenerationTiming;
            if_acmpne 1
            aload 1 /* timing */
            invokevirtual org.hibernate.tuple.GenerationTiming.includesInsert:()Z
            ifne 3
         1: .line 4914
      StackMap locals:
      StackMap stack:
            aload 2 /* matchTiming */
            getstatic org.hibernate.tuple.GenerationTiming.ALWAYS:Lorg/hibernate/tuple/GenerationTiming;
            if_acmpne 2
            aload 1 /* timing */
            invokevirtual org.hibernate.tuple.GenerationTiming.includesUpdate:()Z
            ifne 3
         2: .line 4912
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 2 // org.hibernate.tuple.GenerationTiming matchTiming
        end local 1 // org.hibernate.tuple.GenerationTiming timing
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    4     1       timing  Lorg/hibernate/tuple/GenerationTiming;
            0    4     2  matchTiming  Lorg/hibernate/tuple/GenerationTiming;
    MethodParameters:
             Name  Flags
      timing       
      matchTiming  

  public java.lang.String getIdentifierPropertyName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4918
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getIdentifierProperty:()Lorg/hibernate/tuple/IdentifierProperty;
            invokevirtual org.hibernate.tuple.IdentifierProperty.getName:()Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public org.hibernate.type.Type getIdentifierType();
    descriptor: ()Lorg/hibernate/type/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4922
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getIdentifierProperty:()Lorg/hibernate/tuple/IdentifierProperty;
            invokevirtual org.hibernate.tuple.IdentifierProperty.getType:()Lorg/hibernate/type/Type;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

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

  public int[] getNaturalIdentifierProperties();
    descriptor: ()[I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4930
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getNaturalIdentifierProperties:()[I
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.Object[] getNaturalIdentifierSnapshot(java.io.Serializable, org.hibernate.engine.spi.SessionImplementor);
    descriptor: (Ljava/io/Serializable;Lorg/hibernate/engine/spi/SessionImplementor;)[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=20, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.io.Serializable id
        start local 2 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 4934
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasNaturalIdentifier:()Z
            ifne 2
         1: .line 4935
            new org.hibernate.MappingException
            dup
            new java.lang.StringBuilder
            dup
            ldc "persistent class did not define a natural-id : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 4937
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 6
         3: .line 4938
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Getting current natural-id snapshot state for: {0}"
         4: .line 4939
            aload 0 /* this */
            aload 1 /* id */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
         5: .line 4938
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracev:(Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 4942
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getNaturalIdentifierProperties:()[I
            astore 3 /* naturalIdPropertyIndexes */
        start local 3 // int[] naturalIdPropertyIndexes
         7: .line 4943
            aload 3 /* naturalIdPropertyIndexes */
            arraylength
            istore 4 /* naturalIdPropertyCount */
        start local 4 // int naturalIdPropertyCount
         8: .line 4944
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertySpan:()I
            newarray 4
            astore 5 /* naturalIdMarkers */
        start local 5 // boolean[] naturalIdMarkers
         9: .line 4945
            iload 4 /* naturalIdPropertyCount */
            anewarray org.hibernate.type.Type
            astore 6 /* extractionTypes */
        start local 6 // org.hibernate.type.Type[] extractionTypes
        10: .line 4946
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        11: goto 15
        12: .line 4947
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable org.hibernate.engine.spi.SessionImplementor int[] int boolean[] org.hibernate.type.Type[] int
      StackMap stack:
            aload 6 /* extractionTypes */
            iload 7 /* i */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyTypes:()[Lorg/hibernate/type/Type;
            aload 3 /* naturalIdPropertyIndexes */
            iload 7 /* i */
            iaload
            aaload
            aastore
        13: .line 4948
            aload 5 /* naturalIdMarkers */
            aload 3 /* naturalIdPropertyIndexes */
            iload 7 /* i */
            iaload
            iconst_1
            bastore
        14: .line 4946
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 7 /* i */
            iload 4 /* naturalIdPropertyCount */
            if_icmplt 12
        end local 7 // int i
        16: .line 4953
            new org.hibernate.sql.Select
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokespecial org.hibernate.sql.Select.<init>:(Lorg/hibernate/dialect/Dialect;)V
            astore 7 /* select */
        start local 7 // org.hibernate.sql.Select select
        17: .line 4954
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.isCommentsEnabled:()Z
            ifeq 19
        18: .line 4955
            aload 7 /* select */
            new java.lang.StringBuilder
            dup
            ldc "get current natural-id state "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Select.setComment:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
            pop
        19: .line 4957
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable org.hibernate.engine.spi.SessionImplementor int[] int boolean[] org.hibernate.type.Type[] org.hibernate.sql.Select
      StackMap stack:
            aload 7 /* select */
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootAlias:()Ljava/lang/String;
            aload 5 /* naturalIdMarkers */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.concretePropertySelectFragmentSansLeadingComma:(Ljava/lang/String;[Z)Ljava/lang/String;
            invokevirtual org.hibernate.sql.Select.setSelectClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
            pop
        20: .line 4958
            aload 7 /* select */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootAlias:()Ljava/lang/String;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.fromTableFragment:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootAlias:()Ljava/lang/String;
            iconst_1
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.fromJoinFragment:(Ljava/lang/String;ZZ)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Select.setFromClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
            pop
        21: .line 4960
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootAlias:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnNames:()[Ljava/lang/String;
            invokestatic org.hibernate.internal.util.StringHelper.qualify:(Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
            astore 8 /* aliasedIdColumns */
        start local 8 // java.lang.String[] aliasedIdColumns
        22: .line 4961
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
        23: .line 4962
            ldc "=? and "
        24: .line 4963
            aload 8 /* aliasedIdColumns */
        25: .line 4962
            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;
        26: .line 4964
            ldc "=?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        27: .line 4965
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootAlias:()Ljava/lang/String;
            iconst_1
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.whereJoinFragment:(Ljava/lang/String;ZZ)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        28: .line 4966
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        29: .line 4961
            astore 9 /* whereClause */
        start local 9 // java.lang.String whereClause
        30: .line 4968
            aload 7 /* select */
            ldc ""
            ldc ""
            invokevirtual org.hibernate.sql.Select.setOuterJoins:(Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/Select;
        31: .line 4969
            aload 9 /* whereClause */
            invokevirtual org.hibernate.sql.Select.setWhereClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
        32: .line 4970
            invokevirtual org.hibernate.sql.Select.toStatementString:()Ljava/lang/String;
        33: .line 4968
            astore 10 /* sql */
        start local 10 // java.lang.String sql
        34: .line 4973
            iload 4 /* naturalIdPropertyCount */
            anewarray java.lang.Object
            astore 11 /* snapshot */
        start local 11 // java.lang.Object[] snapshot
        35: .line 4975
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
        36: .line 4976
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        37: .line 4977
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
        38: .line 4978
            aload 10 /* sql */
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
        39: .line 4975
            astore 12 /* ps */
        start local 12 // java.sql.PreparedStatement ps
        40: .line 4980
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            aload 12 /* ps */
            aload 1 /* id */
            iconst_1
            aload 2 /* session */
            invokeinterface org.hibernate.type.Type.nullSafeSet:(Ljava/sql/PreparedStatement;Ljava/lang/Object;ILorg/hibernate/engine/spi/SessionImplementor;)V
        41: .line 4981
            aload 2 /* 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 12 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.ResultSetReturn.extract:(Ljava/sql/PreparedStatement;)Ljava/sql/ResultSet;
            astore 13 /* rs */
        start local 13 // java.sql.ResultSet rs
        42: .line 4984
            aload 13 /* rs */
            invokeinterface java.sql.ResultSet.next:()Z
            ifne 46
        43: .line 4998
            aload 2 /* 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 13 /* rs */
            aload 12 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        44: .line 5002
            aload 2 /* 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 12 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        45: .line 4985
            aconst_null
            areturn
        46: .line 4987
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable org.hibernate.engine.spi.SessionImplementor int[] int boolean[] org.hibernate.type.Type[] org.hibernate.sql.Select java.lang.String[] java.lang.String java.lang.String java.lang.Object[] java.sql.PreparedStatement java.sql.ResultSet
      StackMap stack:
            aload 2 /* session */
            aload 1 /* id */
            aload 0 /* this */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.generateEntityKey:(Ljava/io/Serializable;Lorg/hibernate/persister/entity/EntityPersister;)Lorg/hibernate/engine/spi/EntityKey;
            astore 14 /* key */
        start local 14 // org.hibernate.engine.spi.EntityKey key
        47: .line 4988
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getPersistenceContext:()Lorg/hibernate/engine/spi/PersistenceContext;
            aload 14 /* key */
            invokeinterface org.hibernate.engine.spi.PersistenceContext.getEntity:(Lorg/hibernate/engine/spi/EntityKey;)Ljava/lang/Object;
            astore 15 /* owner */
        start local 15 // java.lang.Object owner
        48: .line 4989
            iconst_0
            istore 16 /* i */
        start local 16 // int i
        49: goto 54
        50: .line 4990
      StackMap locals: org.hibernate.engine.spi.EntityKey java.lang.Object int
      StackMap stack:
            aload 11 /* snapshot */
            iload 16 /* i */
            aload 6 /* extractionTypes */
            iload 16 /* i */
            aaload
            aload 13 /* rs */
            aload 0 /* this */
            ldc ""
            aload 3 /* naturalIdPropertyIndexes */
            iload 16 /* i */
            iaload
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyAliases:(Ljava/lang/String;I)[Ljava/lang/String;
            aload 2 /* session */
            aconst_null
            invokeinterface org.hibernate.type.Type.hydrate:(Ljava/sql/ResultSet;[Ljava/lang/String;Lorg/hibernate/engine/spi/SessionImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            aastore
        51: .line 4991
            aload 6 /* extractionTypes */
            iload 16 /* i */
            aaload
            invokeinterface org.hibernate.type.Type.isEntityType:()Z
            ifeq 53
        52: .line 4992
            aload 11 /* snapshot */
            iload 16 /* i */
            aload 6 /* extractionTypes */
            iload 16 /* i */
            aaload
            aload 11 /* snapshot */
            iload 16 /* i */
            aaload
            aload 2 /* session */
            aload 15 /* owner */
            invokeinterface org.hibernate.type.Type.resolve:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            aastore
        53: .line 4989
      StackMap locals:
      StackMap stack:
            iinc 16 /* i */ 1
      StackMap locals:
      StackMap stack:
        54: iload 16 /* i */
            iload 4 /* naturalIdPropertyCount */
            if_icmplt 50
        end local 16 // int i
        55: .line 4995
            aload 11 /* snapshot */
            astore 18
        56: .line 4998
            aload 2 /* 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 13 /* rs */
            aload 12 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        57: .line 5002
            aload 2 /* 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 12 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        58: .line 4995
            aload 18
            areturn
        end local 15 // java.lang.Object owner
        end local 14 // org.hibernate.engine.spi.EntityKey key
        59: .line 4997
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable org.hibernate.engine.spi.SessionImplementor int[] int boolean[] org.hibernate.type.Type[] org.hibernate.sql.Select java.lang.String[] java.lang.String java.lang.String java.lang.Object[] java.sql.PreparedStatement java.sql.ResultSet
      StackMap stack: java.lang.Throwable
            astore 17
        60: .line 4998
            aload 2 /* 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 13 /* rs */
            aload 12 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        61: .line 4999
            aload 17
            athrow
        end local 13 // java.sql.ResultSet rs
        62: .line 5001
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable org.hibernate.engine.spi.SessionImplementor int[] int boolean[] org.hibernate.type.Type[] org.hibernate.sql.Select java.lang.String[] java.lang.String java.lang.String java.lang.Object[] java.sql.PreparedStatement
      StackMap stack: java.lang.Throwable
            astore 19
        63: .line 5002
            aload 2 /* 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 12 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        64: .line 5003
            aload 19
            athrow
        end local 12 // java.sql.PreparedStatement ps
        65: .line 5005
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable org.hibernate.engine.spi.SessionImplementor int[] int boolean[] org.hibernate.type.Type[] org.hibernate.sql.Select java.lang.String[] java.lang.String java.lang.String java.lang.Object[]
      StackMap stack: java.sql.SQLException
            astore 12 /* e */
        start local 12 // java.sql.SQLException e
        66: .line 5006
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSQLExceptionHelper:()Lorg/hibernate/engine/jdbc/spi/SqlExceptionHelper;
        67: .line 5007
            aload 12 /* e */
        68: .line 5008
            new java.lang.StringBuilder
            dup
            ldc "could not retrieve snapshot: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            aload 1 /* id */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        69: .line 5009
            aload 10 /* sql */
        70: .line 5006
            invokevirtual org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert:(Ljava/sql/SQLException;Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/JDBCException;
            athrow
        end local 12 // java.sql.SQLException e
        end local 11 // java.lang.Object[] snapshot
        end local 10 // java.lang.String sql
        end local 9 // java.lang.String whereClause
        end local 8 // java.lang.String[] aliasedIdColumns
        end local 7 // org.hibernate.sql.Select select
        end local 6 // org.hibernate.type.Type[] extractionTypes
        end local 5 // boolean[] naturalIdMarkers
        end local 4 // int naturalIdPropertyCount
        end local 3 // int[] naturalIdPropertyIndexes
        end local 2 // org.hibernate.engine.spi.SessionImplementor session
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   71     0                      this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   71     1                        id  Ljava/io/Serializable;
            0   71     2                   session  Lorg/hibernate/engine/spi/SessionImplementor;
            7   71     3  naturalIdPropertyIndexes  [I
            8   71     4    naturalIdPropertyCount  I
            9   71     5          naturalIdMarkers  [Z
           10   71     6           extractionTypes  [Lorg/hibernate/type/Type;
           11   16     7                         i  I
           17   71     7                    select  Lorg/hibernate/sql/Select;
           22   71     8          aliasedIdColumns  [Ljava/lang/String;
           30   71     9               whereClause  Ljava/lang/String;
           34   71    10                       sql  Ljava/lang/String;
           35   71    11                  snapshot  [Ljava/lang/Object;
           40   65    12                        ps  Ljava/sql/PreparedStatement;
           42   62    13                        rs  Ljava/sql/ResultSet;
           47   59    14                       key  Lorg/hibernate/engine/spi/EntityKey;
           48   59    15                     owner  Ljava/lang/Object;
           49   55    16                         i  I
           66   71    12                         e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          42    43      59  any
          46    56      59  any
          40    44      62  any
          46    57      62  any
          59    62      62  any
          35    45      65  Class java.sql.SQLException
          46    58      65  Class java.sql.SQLException
          59    65      65  Class java.sql.SQLException
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
         Name  Flags
      id       
      session  

  public java.io.Serializable loadEntityIdByNaturalId(java.lang.Object[], org.hibernate.LockOptions, org.hibernate.engine.spi.SessionImplementor);
    descriptor: ([Ljava/lang/Object;Lorg/hibernate/LockOptions;Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/io/Serializable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=16, args_size=4
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object[] naturalIdValues
        start local 2 // org.hibernate.LockOptions lockOptions
        start local 3 // org.hibernate.engine.spi.SessionImplementor session
         0: .line 5019
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 6
         1: .line 5020
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         2: .line 5021
            ldc "Resolving natural-id [%s] to id : %s "
         3: .line 5022
            aload 1 /* naturalIdValues */
         4: .line 5023
            aload 0 /* this */
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;)Ljava/lang/String;
         5: .line 5020
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracef:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 5027
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* naturalIdValues */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.determineValueNullness:([Ljava/lang/Object;)[Z
            astore 4 /* valueNullness */
        start local 4 // boolean[] valueNullness
         7: .line 5028
            aload 0 /* this */
            aload 4 /* valueNullness */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.determinePkByNaturalIdQuery:([Z)Ljava/lang/String;
            astore 5 /* sqlEntityIdByNaturalIdString */
        start local 5 // java.lang.String sqlEntityIdByNaturalIdString
         8: .line 5031
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
         9: .line 5032
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        10: .line 5033
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
        11: .line 5034
            aload 5 /* sqlEntityIdByNaturalIdString */
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
        12: .line 5031
            astore 6 /* ps */
        start local 6 // java.sql.PreparedStatement ps
        13: .line 5036
            iconst_1
            istore 7 /* positions */
        start local 7 // int positions
        14: .line 5037
            iconst_0
            istore 8 /* loop */
        start local 8 // int loop
        15: .line 5038
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getNaturalIdentifierProperties:()[I
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 23
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.Object[] org.hibernate.LockOptions org.hibernate.engine.spi.SessionImplementor boolean[] java.lang.String java.sql.PreparedStatement int int top int int int[]
      StackMap stack:
        16: aload 12
            iload 10
            iaload
            istore 9 /* idPosition */
        start local 9 // int idPosition
        17: .line 5039
            aload 1 /* naturalIdValues */
            iload 8 /* loop */
            iinc 8 /* loop */ 1
            aaload
            astore 13 /* naturalIdValue */
        start local 13 // java.lang.Object naturalIdValue
        18: .line 5040
            aload 13 /* naturalIdValue */
            ifnull 22
        19: .line 5041
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyTypes:()[Lorg/hibernate/type/Type;
            iload 9 /* idPosition */
            aaload
            astore 14 /* type */
        start local 14 // org.hibernate.type.Type type
        20: .line 5042
            aload 14 /* type */
            aload 6 /* ps */
            aload 13 /* naturalIdValue */
            iload 7 /* positions */
            aload 3 /* session */
            invokeinterface org.hibernate.type.Type.nullSafeSet:(Ljava/sql/PreparedStatement;Ljava/lang/Object;ILorg/hibernate/engine/spi/SessionImplementor;)V
        21: .line 5043
            iload 7 /* positions */
            aload 14 /* type */
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.type.Type.getColumnSpan:(Lorg/hibernate/engine/spi/Mapping;)I
            iadd
            istore 7 /* positions */
        end local 14 // org.hibernate.type.Type type
        end local 13 // java.lang.Object naturalIdValue
        end local 9 // int idPosition
        22: .line 5038
      StackMap locals:
      StackMap stack:
            iinc 10 1
      StackMap locals:
      StackMap stack:
        23: iload 10
            iload 11
            if_icmplt 16
        24: .line 5046
            aload 3 /* 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 6 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.ResultSetReturn.extract:(Ljava/sql/PreparedStatement;)Ljava/sql/ResultSet;
            astore 9 /* rs */
        start local 9 // java.sql.ResultSet rs
        25: .line 5049
            aload 9 /* rs */
            invokeinterface java.sql.ResultSet.next:()Z
            ifne 29
        26: .line 5057
            aload 3 /* 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 9 /* rs */
            aload 6 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        27: .line 5061
            aload 3 /* 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 6 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        28: .line 5050
            aconst_null
            areturn
        29: .line 5053
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.Object[] org.hibernate.LockOptions org.hibernate.engine.spi.SessionImplementor boolean[] java.lang.String java.sql.PreparedStatement int int java.sql.ResultSet
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            aload 9 /* rs */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierAliases:()[Ljava/lang/String;
            aload 3 /* session */
            aconst_null
            invokeinterface org.hibernate.type.Type.hydrate:(Ljava/sql/ResultSet;[Ljava/lang/String;Lorg/hibernate/engine/spi/SessionImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            astore 10 /* hydratedId */
        start local 10 // java.lang.Object hydratedId
        30: .line 5054
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            aload 10 /* hydratedId */
            aload 3 /* session */
            aconst_null
            invokeinterface org.hibernate.type.Type.resolve:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.io.Serializable
            astore 12
        31: .line 5057
            aload 3 /* 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 9 /* rs */
            aload 6 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        32: .line 5061
            aload 3 /* 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 6 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        33: .line 5054
            aload 12
            areturn
        end local 10 // java.lang.Object hydratedId
        34: .line 5056
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 11
        35: .line 5057
            aload 3 /* 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 9 /* rs */
            aload 6 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        36: .line 5058
            aload 11
            athrow
        end local 9 // java.sql.ResultSet rs
        end local 8 // int loop
        end local 7 // int positions
        37: .line 5060
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.Object[] org.hibernate.LockOptions org.hibernate.engine.spi.SessionImplementor boolean[] java.lang.String java.sql.PreparedStatement
      StackMap stack: java.lang.Throwable
            astore 15
        38: .line 5061
            aload 3 /* 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 6 /* ps */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.release:(Ljava/sql/Statement;)V
        39: .line 5062
            aload 15
            athrow
        end local 6 // java.sql.PreparedStatement ps
        40: .line 5064
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.Object[] org.hibernate.LockOptions org.hibernate.engine.spi.SessionImplementor boolean[] java.lang.String
      StackMap stack: java.sql.SQLException
            astore 6 /* e */
        start local 6 // java.sql.SQLException e
        41: .line 5065
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSQLExceptionHelper:()Lorg/hibernate/engine/jdbc/spi/SqlExceptionHelper;
        42: .line 5066
            aload 6 /* e */
        43: .line 5068
            ldc "could not resolve natural-id [%s] to id : %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        44: .line 5069
            aload 1 /* naturalIdValues */
            aastore
            dup
            iconst_1
        45: .line 5070
            aload 0 /* this */
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;)Ljava/lang/String;
            aastore
        46: .line 5067
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        47: .line 5072
            aload 5 /* sqlEntityIdByNaturalIdString */
        48: .line 5065
            invokevirtual org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert:(Ljava/sql/SQLException;Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/JDBCException;
            athrow
        end local 6 // java.sql.SQLException e
        end local 5 // java.lang.String sqlEntityIdByNaturalIdString
        end local 4 // boolean[] valueNullness
        end local 3 // org.hibernate.engine.spi.SessionImplementor session
        end local 2 // org.hibernate.LockOptions lockOptions
        end local 1 // java.lang.Object[] naturalIdValues
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0   49     0                          this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   49     1               naturalIdValues  [Ljava/lang/Object;
            0   49     2                   lockOptions  Lorg/hibernate/LockOptions;
            0   49     3                       session  Lorg/hibernate/engine/spi/SessionImplementor;
            7   49     4                 valueNullness  [Z
            8   49     5  sqlEntityIdByNaturalIdString  Ljava/lang/String;
           13   40     6                            ps  Ljava/sql/PreparedStatement;
           14   37     7                     positions  I
           15   37     8                          loop  I
           17   22     9                    idPosition  I
           18   22    13                naturalIdValue  Ljava/lang/Object;
           20   22    14                          type  Lorg/hibernate/type/Type;
           25   37     9                            rs  Ljava/sql/ResultSet;
           30   34    10                    hydratedId  Ljava/lang/Object;
           41   49     6                             e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          25    26      34  any
          29    31      34  any
          13    27      37  any
          29    32      37  any
          34    37      37  any
           8    28      40  Class java.sql.SQLException
          29    33      40  Class java.sql.SQLException
          34    40      40  Class java.sql.SQLException
    MethodParameters:
                 Name  Flags
      naturalIdValues  
      lockOptions      
      session          

  private boolean[] determineValueNullness(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)[Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object[] naturalIdValues
         0: .line 5078
            aload 1 /* naturalIdValues */
            arraylength
            newarray 4
            astore 2 /* nullness */
        start local 2 // boolean[] nullness
         1: .line 5079
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 7
         3: .line 5080
      StackMap locals: boolean[] int
      StackMap stack:
            aload 2 /* nullness */
            iload 3 /* i */
            aload 1 /* naturalIdValues */
            iload 3 /* i */
            aaload
            ifnonnull 4
            iconst_1
            goto 5
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.Object[] boolean[] int
      StackMap stack: boolean[] int
         4: iconst_0
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.Object[] boolean[] int
      StackMap stack: boolean[] int int
         5: bastore
         6: .line 5079
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            aload 1 /* naturalIdValues */
            arraylength
            if_icmplt 3
        end local 3 // int i
         8: .line 5082
            aload 2 /* nullness */
            areturn
        end local 2 // boolean[] nullness
        end local 1 // java.lang.Object[] naturalIdValues
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0             this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    9     1  naturalIdValues  [Ljava/lang/Object;
            1    9     2         nullness  [Z
            2    8     3                i  I
    MethodParameters:
                 Name  Flags
      naturalIdValues  

  private java.lang.String determinePkByNaturalIdQuery(boolean[]);
    descriptor: ([Z)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // boolean[] valueNullness
         0: .line 5089
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasNaturalIdentifier:()Z
            ifne 2
         1: .line 5090
            new org.hibernate.HibernateException
            dup
            ldc "Attempt to build natural-id -> PK resolution query for entity that does not define natural id"
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 5094
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isNaturalIdNonNullable:()Z
            ifeq 8
         3: .line 5095
            aload 1 /* valueNullness */
            ifnull 5
            aload 1 /* valueNullness */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.isAllFalse:([Z)Z
            ifne 5
         4: .line 5096
            new org.hibernate.HibernateException
            dup
            ldc "Null value(s) passed to lookup by non-nullable natural-id"
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 5098
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.cachedPkByNonNullableNaturalIdQuery:Ljava/lang/String;
            ifnonnull 7
         6: .line 5099
            aload 0 /* this */
            aload 0 /* this */
            aconst_null
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateEntityIdByNaturalIdSql:([Z)Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.cachedPkByNonNullableNaturalIdQuery:Ljava/lang/String;
         7: .line 5101
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.cachedPkByNonNullableNaturalIdQuery:Ljava/lang/String;
            areturn
         8: .line 5105
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* valueNullness */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateEntityIdByNaturalIdSql:([Z)Ljava/lang/String;
            areturn
        end local 1 // boolean[] valueNullness
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    9     1  valueNullness  [Z
    MethodParameters:
               Name  Flags
      valueNullness  

  protected boolean isNaturalIdNonNullable();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 5109
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.naturalIdIsNonNullable:Ljava/lang/Boolean;
            ifnonnull 2
         1: .line 5110
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.determineNaturalIdNullability:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.naturalIdIsNonNullable:Ljava/lang/Boolean;
         2: .line 5112
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.naturalIdIsNonNullable:Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  private boolean determineNaturalIdNullability();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 5116
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyNullability:()[Z
            astore 1 /* nullability */
        start local 1 // boolean[] nullability
         1: .line 5117
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getNaturalIdentifierProperties:()[I
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 6
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister boolean[] top int int int[]
      StackMap stack:
         2: aload 5
            iload 3
            iaload
            istore 2 /* position */
        start local 2 // int position
         3: .line 5119
            aload 1 /* nullability */
            iload 2 /* position */
            baload
            ifeq 5
         4: .line 5120
            iconst_0
            ireturn
        end local 2 // int position
         5: .line 5117
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         6: iload 3
            iload 4
            if_icmplt 2
         7: .line 5124
            iconst_1
            ireturn
        end local 1 // boolean[] nullability
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            1    8     1  nullability  [Z
            3    5     2     position  I

  private java.lang.String generateEntityIdByNaturalIdSql(boolean[]);
    descriptor: ([Z)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=14, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // boolean[] valueNullness
         0: .line 5128
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootEntityName:()Ljava/lang/String;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getEntityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            astore 2 /* rootPersister */
        start local 2 // org.hibernate.persister.entity.EntityPersister rootPersister
         1: .line 5129
            aload 2 /* rootPersister */
            aload 0 /* this */
            if_acmpeq 4
         2: .line 5130
            aload 2 /* rootPersister */
            instanceof org.hibernate.persister.entity.AbstractEntityPersister
            ifeq 4
         3: .line 5131
            aload 2 /* rootPersister */
            checkcast org.hibernate.persister.entity.AbstractEntityPersister
            aload 1 /* valueNullness */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateEntityIdByNaturalIdSql:([Z)Ljava/lang/String;
            areturn
         4: .line 5135
      StackMap locals: org.hibernate.persister.entity.EntityPersister
      StackMap stack:
            new org.hibernate.sql.Select
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokespecial org.hibernate.sql.Select.<init>:(Lorg/hibernate/dialect/Dialect;)V
            astore 3 /* select */
        start local 3 // org.hibernate.sql.Select select
         5: .line 5136
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.isCommentsEnabled:()Z
            ifeq 7
         6: .line 5137
            aload 3 /* select */
            new java.lang.StringBuilder
            dup
            ldc "get current natural-id->entity-id state "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Select.setComment:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
            pop
         7: .line 5140
      StackMap locals: org.hibernate.sql.Select
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootAlias:()Ljava/lang/String;
            astore 4 /* rootAlias */
        start local 4 // java.lang.String rootAlias
         8: .line 5142
            aload 3 /* select */
            aload 0 /* this */
            aload 4 /* rootAlias */
            ldc ""
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.identifierSelectFragment:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.hibernate.sql.Select.setSelectClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
            pop
         9: .line 5143
            aload 3 /* select */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            aload 4 /* rootAlias */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.fromTableFragment:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            aload 4 /* rootAlias */
            iconst_1
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.fromJoinFragment:(Ljava/lang/String;ZZ)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Select.setFromClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
            pop
        10: .line 5145
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 5 /* whereClause */
        start local 5 // java.lang.StringBuilder whereClause
        11: .line 5146
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyTableNumbers:()[I
            astore 6 /* propertyTableNumbers */
        start local 6 // int[] propertyTableNumbers
        12: .line 5147
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getNaturalIdentifierProperties:()[I
            astore 7 /* naturalIdPropertyIndexes */
        start local 7 // int[] naturalIdPropertyIndexes
        13: .line 5148
            iconst_m1
            istore 8 /* valuesIndex */
        start local 8 // int valuesIndex
        14: .line 5149
            iconst_0
            istore 9 /* propIdx */
        start local 9 // int propIdx
        15: goto 28
        16: .line 5150
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister boolean[] org.hibernate.persister.entity.EntityPersister org.hibernate.sql.Select java.lang.String java.lang.StringBuilder int[] int[] int int
      StackMap stack:
            iinc 8 /* valuesIndex */ 1
        17: .line 5151
            iload 9 /* propIdx */
            ifle 19
        18: .line 5152
            aload 5 /* whereClause */
            ldc " and "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        19: .line 5155
      StackMap locals:
      StackMap stack:
            aload 7 /* naturalIdPropertyIndexes */
            iload 9 /* propIdx */
            iaload
            istore 10 /* naturalIdIdx */
        start local 10 // int naturalIdIdx
        20: .line 5156
            aload 4 /* rootAlias */
            aload 6 /* propertyTableNumbers */
            iload 10 /* naturalIdIdx */
            iaload
            invokestatic org.hibernate.persister.entity.AbstractEntityPersister.generateTableAlias:(Ljava/lang/String;I)Ljava/lang/String;
            astore 11 /* tableAlias */
        start local 11 // java.lang.String tableAlias
        21: .line 5157
            aload 0 /* this */
            iload 10 /* naturalIdIdx */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyColumnNames:(I)[Ljava/lang/String;
            astore 12 /* propertyColumnNames */
        start local 12 // java.lang.String[] propertyColumnNames
        22: .line 5158
            aload 11 /* tableAlias */
            aload 12 /* propertyColumnNames */
            invokestatic org.hibernate.internal.util.StringHelper.qualify:(Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
            astore 13 /* aliasedPropertyColumns */
        start local 13 // java.lang.String[] aliasedPropertyColumns
        23: .line 5160
            aload 1 /* valueNullness */
            ifnull 26
            aload 1 /* valueNullness */
            iload 8 /* valuesIndex */
            baload
            ifeq 26
        24: .line 5161
            aload 5 /* whereClause */
            ldc " is null and "
            aload 13 /* aliasedPropertyColumns */
            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 " is null"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        25: .line 5162
            goto 27
        26: .line 5164
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister boolean[] org.hibernate.persister.entity.EntityPersister org.hibernate.sql.Select java.lang.String java.lang.StringBuilder int[] int[] int int int java.lang.String java.lang.String[] java.lang.String[]
      StackMap stack:
            aload 5 /* whereClause */
            ldc "=? and "
            aload 13 /* aliasedPropertyColumns */
            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 "=?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 13 // java.lang.String[] aliasedPropertyColumns
        end local 12 // java.lang.String[] propertyColumnNames
        end local 11 // java.lang.String tableAlias
        end local 10 // int naturalIdIdx
        27: .line 5149
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister boolean[] org.hibernate.persister.entity.EntityPersister org.hibernate.sql.Select java.lang.String java.lang.StringBuilder int[] int[] int int
      StackMap stack:
            iinc 9 /* propIdx */ 1
      StackMap locals:
      StackMap stack:
        28: iload 9 /* propIdx */
            aload 7 /* naturalIdPropertyIndexes */
            arraylength
            if_icmplt 16
        end local 9 // int propIdx
        29: .line 5168
            aload 5 /* whereClause */
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootAlias:()Ljava/lang/String;
            iconst_1
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.whereJoinFragment:(Ljava/lang/String;ZZ)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        30: .line 5170
            aload 3 /* select */
            ldc ""
            ldc ""
            invokevirtual org.hibernate.sql.Select.setOuterJoins:(Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/Select;
            aload 5 /* whereClause */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.sql.Select.setWhereClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
            invokevirtual org.hibernate.sql.Select.toStatementString:()Ljava/lang/String;
            areturn
        end local 8 // int valuesIndex
        end local 7 // int[] naturalIdPropertyIndexes
        end local 6 // int[] propertyTableNumbers
        end local 5 // java.lang.StringBuilder whereClause
        end local 4 // java.lang.String rootAlias
        end local 3 // org.hibernate.sql.Select select
        end local 2 // org.hibernate.persister.entity.EntityPersister rootPersister
        end local 1 // boolean[] valueNullness
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   31     0                      this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   31     1             valueNullness  [Z
            1   31     2             rootPersister  Lorg/hibernate/persister/entity/EntityPersister;
            5   31     3                    select  Lorg/hibernate/sql/Select;
            8   31     4                 rootAlias  Ljava/lang/String;
           11   31     5               whereClause  Ljava/lang/StringBuilder;
           12   31     6      propertyTableNumbers  [I
           13   31     7  naturalIdPropertyIndexes  [I
           14   31     8               valuesIndex  I
           15   29     9                   propIdx  I
           20   27    10              naturalIdIdx  I
           21   27    11                tableAlias  Ljava/lang/String;
           22   27    12       propertyColumnNames  [Ljava/lang/String;
           23   27    13    aliasedPropertyColumns  [Ljava/lang/String;
    MethodParameters:
               Name  Flags
      valueNullness  

  protected java.lang.String concretePropertySelectFragmentSansLeadingComma(java.lang.String, boolean[]);
    descriptor: (Ljava/lang/String;[Z)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String alias
        start local 2 // boolean[] include
         0: .line 5174
            aload 0 /* this */
            aload 1 /* alias */
            aload 2 /* include */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.concretePropertySelectFragment:(Ljava/lang/String;[Z)Ljava/lang/String;
            astore 3 /* concretePropertySelectFragment */
        start local 3 // java.lang.String concretePropertySelectFragment
         1: .line 5175
            aload 3 /* concretePropertySelectFragment */
            ldc ", "
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 4 /* firstComma */
        start local 4 // int firstComma
         2: .line 5176
            iload 4 /* firstComma */
            ifne 4
         3: .line 5177
            aload 3 /* concretePropertySelectFragment */
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* concretePropertySelectFragment */
         4: .line 5179
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 3 /* concretePropertySelectFragment */
            areturn
        end local 4 // int firstComma
        end local 3 // java.lang.String concretePropertySelectFragment
        end local 2 // boolean[] include
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                            Name  Signature
            0    5     0                            this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    5     1                           alias  Ljava/lang/String;
            0    5     2                         include  [Z
            1    5     3  concretePropertySelectFragment  Ljava/lang/String;
            2    5     4                      firstComma  I
    MethodParameters:
         Name  Flags
      alias    
      include  

  public boolean hasNaturalIdentifier();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 5183
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.hasNaturalIdentifier:()Z
            ireturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public void setPropertyValue(java.lang.Object, java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object object
        start local 2 // java.lang.String propertyName
        start local 3 // java.lang.Object value
         0: .line 5187
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityTuplizer:()Lorg/hibernate/tuple/entity/EntityTuplizer;
            aload 1 /* object */
            aload 2 /* propertyName */
            aload 3 /* value */
            invokeinterface org.hibernate.tuple.entity.EntityTuplizer.setPropertyValue:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 5188
            return
        end local 3 // java.lang.Object value
        end local 2 // java.lang.String propertyName
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    2     1        object  Ljava/lang/Object;
            0    2     2  propertyName  Ljava/lang/String;
            0    2     3         value  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      object        
      propertyName  
      value         

  public static int getTableId(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.String tableName
        start local 1 // java.lang.String[] tables
         0: .line 5191
            iconst_0
            istore 2 /* j */
        start local 2 // int j
         1: goto 5
         2: .line 5192
      StackMap locals: int
      StackMap stack:
            aload 0 /* tableName */
            aload 1 /* tables */
            iload 2 /* j */
            aaload
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 5193
            iload 2 /* j */
            ireturn
         4: .line 5191
      StackMap locals:
      StackMap stack:
            iinc 2 /* j */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* j */
            aload 1 /* tables */
            arraylength
            if_icmplt 2
        end local 2 // int j
         6: .line 5196
            new org.hibernate.AssertionFailure
            dup
            new java.lang.StringBuilder
            dup
            ldc "Table "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* tableName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " not found"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.hibernate.AssertionFailure.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String[] tables
        end local 0 // java.lang.String tableName
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0  tableName  Ljava/lang/String;
            0    7     1     tables  [Ljava/lang/String;
            1    6     2          j  I
    MethodParameters:
           Name  Flags
      tableName  
      tables     

  public org.hibernate.EntityMode getEntityMode();
    descriptor: ()Lorg/hibernate/EntityMode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 5201
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getEntityMode:()Lorg/hibernate/EntityMode;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public org.hibernate.tuple.entity.EntityTuplizer getEntityTuplizer();
    descriptor: ()Lorg/hibernate/tuple/entity/EntityTuplizer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 5206
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityTuplizer:Lorg/hibernate/tuple/entity/EntityTuplizer;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public org.hibernate.bytecode.spi.EntityInstrumentationMetadata getInstrumentationMetadata();
    descriptor: ()Lorg/hibernate/bytecode/spi/EntityInstrumentationMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 5211
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getInstrumentationMetadata:()Lorg/hibernate/bytecode/spi/EntityInstrumentationMetadata;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.String getTableAliasForColumn(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String columnName
        start local 2 // java.lang.String rootAlias
         0: .line 5216
            aload 2 /* rootAlias */
            aload 0 /* this */
            aload 1 /* columnName */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.determineTableNumberForColumn:(Ljava/lang/String;)I
            invokestatic org.hibernate.persister.entity.AbstractEntityPersister.generateTableAlias:(Ljava/lang/String;I)Ljava/lang/String;
            areturn
        end local 2 // java.lang.String rootAlias
        end local 1 // java.lang.String columnName
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  columnName  Ljava/lang/String;
            0    1     2   rootAlias  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      columnName  
      rootAlias   

  public int determineTableNumberForColumn(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String columnName
         0: .line 5220
            iconst_0
            ireturn
        end local 1 // java.lang.String columnName
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    1     1  columnName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      columnName  

  public void generateEntityDefinition();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 5325
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.prepareEntityIdentifierDefinition:()V
         1: .line 5326
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.collectAttributeDefinitions:()V
         2: .line 5327
            return
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public org.hibernate.persister.entity.EntityPersister getEntityPersister();
    descriptor: ()Lorg/hibernate/persister/entity/EntityPersister;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 5331
            aload 0 /* this */
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public org.hibernate.persister.walking.spi.EntityIdentifierDefinition getEntityKeyDefinition();
    descriptor: ()Lorg/hibernate/persister/walking/spi/EntityIdentifierDefinition;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 5336
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityIdentifierDefinition:Lorg/hibernate/persister/walking/spi/EntityIdentifierDefinition;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;

  public java.lang.Iterable<org.hibernate.persister.walking.spi.AttributeDefinition> getAttributes();
    descriptor: ()Ljava/lang/Iterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 5341
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.attributeDefinitions:Ljava/lang/Iterable;
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
    Signature: ()Ljava/lang/Iterable<Lorg/hibernate/persister/walking/spi/AttributeDefinition;>;

  private void prepareEntityIdentifierDefinition();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 5346
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityIdentifierDefinition:Lorg/hibernate/persister/walking/spi/EntityIdentifierDefinition;
            ifnull 2
         1: .line 5347
            return
         2: .line 5349
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            astore 1 /* idType */
        start local 1 // org.hibernate.type.Type idType
         3: .line 5351
            aload 1 /* idType */
            invokeinterface org.hibernate.type.Type.isComponentType:()Z
            ifne 8
         4: .line 5352
            aload 0 /* this */
         5: .line 5353
            aload 0 /* this */
            invokestatic org.hibernate.persister.walking.internal.EntityIdentifierDefinitionHelper.buildSimpleEncapsulatedIdentifierDefinition:(Lorg/hibernate/persister/entity/AbstractEntityPersister;)Lorg/hibernate/persister/walking/spi/EntityIdentifierDefinition;
         6: .line 5352
            putfield org.hibernate.persister.entity.AbstractEntityPersister.entityIdentifierDefinition:Lorg/hibernate/persister/walking/spi/EntityIdentifierDefinition;
         7: .line 5354
            return
         8: .line 5357
      StackMap locals: org.hibernate.type.Type
      StackMap stack:
            aload 1 /* idType */
            checkcast org.hibernate.type.CompositeType
            astore 2 /* cidType */
        start local 2 // org.hibernate.type.CompositeType cidType
         9: .line 5358
            aload 2 /* cidType */
            invokeinterface org.hibernate.type.CompositeType.isEmbedded:()Z
            ifne 14
        10: .line 5359
            aload 0 /* this */
        11: .line 5360
            aload 0 /* this */
            invokestatic org.hibernate.persister.walking.internal.EntityIdentifierDefinitionHelper.buildEncapsulatedCompositeIdentifierDefinition:(Lorg/hibernate/persister/entity/AbstractEntityPersister;)Lorg/hibernate/persister/walking/spi/EntityIdentifierDefinition;
        12: .line 5359
            putfield org.hibernate.persister.entity.AbstractEntityPersister.entityIdentifierDefinition:Lorg/hibernate/persister/walking/spi/EntityIdentifierDefinition;
        13: .line 5361
            return
        14: .line 5364
      StackMap locals: org.hibernate.type.CompositeType
      StackMap stack:
            aload 0 /* this */
        15: .line 5365
            aload 0 /* this */
            invokestatic org.hibernate.persister.walking.internal.EntityIdentifierDefinitionHelper.buildNonEncapsulatedCompositeIdentifierDefinition:(Lorg/hibernate/persister/entity/AbstractEntityPersister;)Lorg/hibernate/persister/walking/spi/EntityIdentifierDefinition;
        16: .line 5364
            putfield org.hibernate.persister.entity.AbstractEntityPersister.entityIdentifierDefinition:Lorg/hibernate/persister/walking/spi/EntityIdentifierDefinition;
        17: .line 5366
            return
        end local 2 // org.hibernate.type.CompositeType cidType
        end local 1 // org.hibernate.type.Type idType
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            3   18     1   idType  Lorg/hibernate/type/Type;
            9   18     2  cidType  Lorg/hibernate/type/CompositeType;

  private void collectAttributeDefinitions(java.util.Map<java.lang.String, org.hibernate.persister.walking.spi.AttributeDefinition>, org.hibernate.tuple.entity.EntityMetamodel);
    descriptor: (Ljava/util/Map;Lorg/hibernate/tuple/entity/EntityMetamodel;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=7, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.util.Map attributeDefinitionsByName
        start local 2 // org.hibernate.tuple.entity.EntityMetamodel metamodel
         0: .line 5371
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         1: goto 16
         2: .line 5372
      StackMap locals: int
      StackMap stack:
            aload 2 /* metamodel */
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getProperties:()[Lorg/hibernate/tuple/NonIdentifierAttribute;
            iload 3 /* i */
            aaload
            astore 4 /* attributeDefinition */
        start local 4 // org.hibernate.persister.walking.spi.AttributeDefinition attributeDefinition
         3: .line 5375
            aload 1 /* attributeDefinitionsByName */
         4: .line 5376
            aload 4 /* attributeDefinition */
            invokeinterface org.hibernate.persister.walking.spi.AttributeDefinition.getName:()Ljava/lang/String;
         5: .line 5375
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.persister.walking.spi.AttributeDefinition
            astore 5 /* oldAttributeDefinition */
        start local 5 // org.hibernate.persister.walking.spi.AttributeDefinition oldAttributeDefinition
         6: .line 5378
            aload 5 /* oldAttributeDefinition */
            ifnull 14
         7: .line 5379
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 15
         8: .line 5380
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         9: .line 5381
            ldc "Ignoring subclass attribute definition [%s.%s] because it is defined in a superclass "
        10: .line 5382
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getName:()Ljava/lang/String;
        11: .line 5383
            aload 4 /* attributeDefinition */
            invokeinterface org.hibernate.persister.walking.spi.AttributeDefinition.getName:()Ljava/lang/String;
        12: .line 5380
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracef:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        13: .line 5386
            goto 15
        14: .line 5388
      StackMap locals: org.hibernate.persister.walking.spi.AttributeDefinition org.hibernate.persister.walking.spi.AttributeDefinition
      StackMap stack:
            aload 1 /* attributeDefinitionsByName */
            aload 4 /* attributeDefinition */
            invokeinterface org.hibernate.persister.walking.spi.AttributeDefinition.getName:()Ljava/lang/String;
            aload 4 /* attributeDefinition */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // org.hibernate.persister.walking.spi.AttributeDefinition oldAttributeDefinition
        end local 4 // org.hibernate.persister.walking.spi.AttributeDefinition attributeDefinition
        15: .line 5371
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 3 /* i */
            aload 2 /* metamodel */
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertySpan:()I
            if_icmplt 2
        end local 3 // int i
        17: .line 5393
            aload 2 /* metamodel */
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getSubclassEntityNames:()Ljava/util/Set;
            astore 3 /* subClassEntityNames */
        start local 3 // java.util.Set subClassEntityNames
        18: .line 5394
            aload 3 /* subClassEntityNames */
            ifnonnull 20
        19: .line 5395
            return
        20: .line 5399
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.util.Map org.hibernate.tuple.entity.EntityMetamodel java.util.Set
      StackMap stack:
            aload 3 /* subClassEntityNames */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 35
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.util.Map org.hibernate.tuple.entity.EntityMetamodel java.util.Set top java.util.Iterator
      StackMap stack:
        21: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* subClassEntityName */
        start local 4 // java.lang.String subClassEntityName
        22: .line 5400
            aload 2 /* metamodel */
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getName:()Ljava/lang/String;
            aload 4 /* subClassEntityName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 24
        23: .line 5402
            goto 35
        24: .line 5405
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.util.Map org.hibernate.tuple.entity.EntityMetamodel java.util.Set java.lang.String java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aload 4 /* subClassEntityName */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getEntityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            astore 6 /* subClassEntityPersister */
        start local 6 // org.hibernate.persister.entity.EntityPersister subClassEntityPersister
        25: .line 5406
            aload 0 /* this */
            aload 1 /* attributeDefinitionsByName */
            aload 6 /* subClassEntityPersister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getEntityMetamodel:()Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.collectAttributeDefinitions:(Ljava/util/Map;Lorg/hibernate/tuple/entity/EntityMetamodel;)V
        end local 6 // org.hibernate.persister.entity.EntityPersister subClassEntityPersister
        26: .line 5407
            goto 35
        27: .line 5408
      StackMap locals:
      StackMap stack: org.hibernate.MappingException
            astore 6 /* e */
        start local 6 // org.hibernate.MappingException e
        28: .line 5409
            new java.lang.IllegalStateException
            dup
        29: .line 5411
            ldc "Could not locate subclass EntityPersister [%s] while processing EntityPersister [%s]"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        30: .line 5412
            aload 4 /* subClassEntityName */
            aastore
            dup
            iconst_1
        31: .line 5413
            aload 2 /* metamodel */
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getName:()Ljava/lang/String;
            aastore
        32: .line 5410
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        33: .line 5415
            aload 6 /* e */
        34: .line 5409
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 6 // org.hibernate.MappingException e
        end local 4 // java.lang.String subClassEntityName
        35: .line 5399
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.util.Map org.hibernate.tuple.entity.EntityMetamodel java.util.Set top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 21
        36: .line 5419
            return
        end local 3 // java.util.Set subClassEntityNames
        end local 2 // org.hibernate.tuple.entity.EntityMetamodel metamodel
        end local 1 // java.util.Map attributeDefinitionsByName
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   37     0                        this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   37     1  attributeDefinitionsByName  Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/persister/walking/spi/AttributeDefinition;>;
            0   37     2                   metamodel  Lorg/hibernate/tuple/entity/EntityMetamodel;
            1   17     3                           i  I
            3   15     4         attributeDefinition  Lorg/hibernate/persister/walking/spi/AttributeDefinition;
            6   15     5      oldAttributeDefinition  Lorg/hibernate/persister/walking/spi/AttributeDefinition;
           18   37     3         subClassEntityNames  Ljava/util/Set<Ljava/lang/String;>;
           22   35     4          subClassEntityName  Ljava/lang/String;
           25   26     6     subClassEntityPersister  Lorg/hibernate/persister/entity/EntityPersister;
           28   35     6                           e  Lorg/hibernate/MappingException;
      Exception table:
        from    to  target  type
          24    26      27  Class org.hibernate.MappingException
    Signature: (Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/persister/walking/spi/AttributeDefinition;>;Lorg/hibernate/tuple/entity/EntityMetamodel;)V
    MethodParameters:
                            Name  Flags
      attributeDefinitionsByName  
      metamodel                   

  private void collectAttributeDefinitions();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 5431
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 1 /* attributeDefinitionsByName */
        start local 1 // java.util.Map attributeDefinitionsByName
         1: .line 5432
            aload 0 /* this */
            aload 1 /* attributeDefinitionsByName */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityMetamodel:()Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.collectAttributeDefinitions:(Ljava/util/Map;Lorg/hibernate/tuple/entity/EntityMetamodel;)V
         2: .line 5450
            aload 0 /* this */
         3: .line 5451
            new java.util.ArrayList
            dup
            aload 1 /* attributeDefinitionsByName */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
         4: .line 5450
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.attributeDefinitions:Ljava/lang/Iterable;
         5: .line 5501
            return
        end local 1 // java.util.Map attributeDefinitionsByName
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0    6     0                        this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            1    6     1  attributeDefinitionsByName  Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/persister/walking/spi/AttributeDefinition;>;
}
SourceFile: "AbstractEntityPersister.java"
NestMembers:
  org.hibernate.persister.entity.AbstractEntityPersister$1  org.hibernate.persister.entity.AbstractEntityPersister$2  org.hibernate.persister.entity.AbstractEntityPersister$3  org.hibernate.persister.entity.AbstractEntityPersister$4  org.hibernate.persister.entity.AbstractEntityPersister$CacheEntryHelper  org.hibernate.persister.entity.AbstractEntityPersister$InclusionChecker  org.hibernate.persister.entity.AbstractEntityPersister$NoopCacheEntryHelper  org.hibernate.persister.entity.AbstractEntityPersister$ReferenceCacheEntryHelper  org.hibernate.persister.entity.AbstractEntityPersister$StandardCacheEntryHelper  org.hibernate.persister.entity.AbstractEntityPersister$StructuredCacheEntryHelper
InnerClasses:
  public abstract NaturalIdHelper = org.hibernate.engine.spi.PersistenceContext$NaturalIdHelper of org.hibernate.engine.spi.PersistenceContext
  org.hibernate.persister.entity.AbstractEntityPersister$1
  org.hibernate.persister.entity.AbstractEntityPersister$2
  org.hibernate.persister.entity.AbstractEntityPersister$3
  org.hibernate.persister.entity.AbstractEntityPersister$4
  public abstract CacheEntryHelper = org.hibernate.persister.entity.AbstractEntityPersister$CacheEntryHelper of org.hibernate.persister.entity.AbstractEntityPersister
  protected abstract InclusionChecker = org.hibernate.persister.entity.AbstractEntityPersister$InclusionChecker of org.hibernate.persister.entity.AbstractEntityPersister
  private NoopCacheEntryHelper = org.hibernate.persister.entity.AbstractEntityPersister$NoopCacheEntryHelper of org.hibernate.persister.entity.AbstractEntityPersister
  private ReferenceCacheEntryHelper = org.hibernate.persister.entity.AbstractEntityPersister$ReferenceCacheEntryHelper of org.hibernate.persister.entity.AbstractEntityPersister
  private StandardCacheEntryHelper = org.hibernate.persister.entity.AbstractEntityPersister$StandardCacheEntryHelper of org.hibernate.persister.entity.AbstractEntityPersister
  private StructuredCacheEntryHelper = org.hibernate.persister.entity.AbstractEntityPersister$StructuredCacheEntryHelper of org.hibernate.persister.entity.AbstractEntityPersister
  public Declarer = org.hibernate.persister.entity.Queryable$Declarer of org.hibernate.persister.entity.Queryable