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.enhance.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.metamodel.model.domain.NavigableRole navigableRole;
    descriptor: Lorg/hibernate/metamodel/model/domain/NavigableRole;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

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

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

  private final org.hibernate.cache.spi.access.NaturalIdDataAccess naturalIdRegionAccessStrategy;
    descriptor: Lorg/hibernate/cache/spi/access/NaturalIdDataAccess;
    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 org.hibernate.engine.spi.EntityEntryFactory entityEntryFactory;
    descriptor: Lorg/hibernate/engine/spi/EntityEntryFactory;
    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

  protected final int batchSize;
    descriptor: I
    flags: (0x0014) ACC_PROTECTED, 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.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 org.hibernate.loader.entity.UniqueEntityLoader noneLockLoader;
    descriptor: Lorg/hibernate/loader/entity/UniqueEntityLoader;
    flags: (0x0002) ACC_PRIVATE

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

  private final java.util.Map<java.lang.Object, org.hibernate.loader.entity.UniqueEntityLoader> loaders;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Object;Lorg/hibernate/loader/entity/UniqueEntityLoader;>;

  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.util.Map<java.lang.String, java.lang.String> sqlLazySelectStringsByFetchGroup;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  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.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 final boolean useReferenceCacheEntries;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, 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> attributeDefinitions;
    descriptor: Ljava/lang/Iterable;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/lang/Iterable<Lorg/hibernate/persister/walking/spi/AttributeDefinition;>;

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$org$hibernate$LockMode;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 147
            ldc Lorg/hibernate/persister/entity/AbstractEntityPersister;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.hibernate.persister.entity.AbstractEntityPersister.$assertionsDisabled:Z
         3: .line 151
            ldc Lorg/hibernate/persister/entity/AbstractEntityPersister;
            invokestatic org.hibernate.internal.CoreLogging.messageLogger:(Ljava/lang/Class;)Lorg/hibernate/internal/CoreMessageLogger;
            putstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         4: .line 335
            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 298
            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 301
            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     

  public abstract int getSubclassTableSpan();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, 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 338
            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 342
            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=2, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 346
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityMetamodel:()Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getSubclassEntityNames:()Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            iconst_1
            if_icmpne 2
         1: .line 347
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getDiscriminatorSQLValue:()Ljava/lang/String;
            areturn
         2: .line 350
      StackMap locals:
      StackMap stack:
            ldc "$PlaceHolder$.clazz_"
            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;

  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 355
            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 359
            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 363
            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 367
            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 371
            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 375
            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 379
            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 383
            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 387
            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 391
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlUpdateByRowIdString:Ljava/lang/String;
            ifnonnull 2
         1: .line 392
            new org.hibernate.AssertionFailure
            dup
            ldc "no update by row id"
            invokespecial org.hibernate.AssertionFailure.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 394
      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 395
            aload 1 /* result */
            iconst_0
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlUpdateByRowIdString:Ljava/lang/String;
            aastore
         4: .line 396
            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 397
            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=6, locals=2, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 401
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlLazyUpdateByRowIdString:Ljava/lang/String;
            ifnonnull 2
         1: .line 402
            new org.hibernate.AssertionFailure
            dup
            ldc "no update by row id"
            invokespecial org.hibernate.AssertionFailure.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 404
      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 405
            aload 1 /* result */
            iconst_0
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlLazyUpdateByRowIdString:Ljava/lang/String;
            aastore
         4: .line 406
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlLazyUpdateStrings:[Ljava/lang/String;
            iconst_1
            aload 1 /* result */
            iconst_1
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableSpan:()I
            iconst_1
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         5: .line 407
            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 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 411
            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(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    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.String fetchGroup
         0: .line 415
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlLazySelectStringsByFetchGroup:Ljava/util/Map;
            aload 1 /* fetchGroup */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 1 // java.lang.String fetchGroup
        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  fetchGroup  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      fetchGroup  

  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 419
            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 423
            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 427
            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 431
            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 440
            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 444
            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 448
            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 452
            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 456
            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 460
            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 464
            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 468
            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=11, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // int[] dirtyProperties
        start local 2 // boolean hasDirtyCollection
         0: .line 484
            aload 1 /* dirtyProperties */
            ifnonnull 2
         1: .line 485
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableHasColumns:()[Z
            areturn
         2: .line 488
      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 489
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyTableNumbers:()[I
            astore 4 /* propertyTableNumbers */
        start local 4 // int[] propertyTableNumbers
         4: .line 490
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableSpan:()I
            newarray 4
            astore 5 /* tableUpdateNeeded */
        start local 5 // boolean[] tableUpdateNeeded
         5: .line 491
            aload 1 /* dirtyProperties */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 14
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int[] int boolean[] int[] boolean[] top int int int[]
      StackMap stack:
         6: aload 9
            iload 7
            iaload
            istore 6 /* property */
        start local 6 // int property
         7: .line 492
            aload 4 /* propertyTableNumbers */
            iload 6 /* property */
            iaload
            istore 10 /* table */
        start local 10 // int table
         8: .line 493
            aload 5 /* tableUpdateNeeded */
            iload 10 /* table */
            aload 5 /* tableUpdateNeeded */
            iload 10 /* table */
            baload
            ifne 11
         9: .line 494
            aload 0 /* this */
            iload 6 /* property */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyColumnSpan:(I)I
            ifle 10
            aload 3 /* updateability */
            iload 6 /* property */
            baload
            ifne 11
        10: .line 493
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int[] int boolean[] int[] boolean[] int int int int[] int
      StackMap stack: boolean[] int
            iconst_0
            goto 12
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int[] int boolean[] int[] boolean[] int int int int[] int
      StackMap stack: boolean[] int
        11: iconst_1
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int[] int boolean[] int[] boolean[] int int int int[] int
      StackMap stack: boolean[] int int
        12: bastore
        end local 10 // int table
        end local 6 // int property
        13: .line 491
            iinc 7 1
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int[] int boolean[] int[] boolean[] top int int int[]
      StackMap stack:
        14: iload 7
            iload 8
            if_icmplt 6
        15: .line 496
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifeq 25
        16: .line 497
            aload 5 /* tableUpdateNeeded */
            iconst_0
            aload 5 /* tableUpdateNeeded */
            iconst_0
            baload
            ifne 23
        17: .line 499
            aload 1 /* dirtyProperties */
        18: .line 500
            iload 2 /* hasDirtyCollection */
        19: .line 501
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyVersionability:()[Z
        20: .line 498
            invokestatic org.hibernate.engine.internal.Versioning.isVersionIncrementRequired:([IZ[Z)Z
        21: .line 502
            ifne 23
        22: .line 497
            iconst_0
            goto 24
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int[] int boolean[] int[] boolean[]
      StackMap stack: boolean[] int
        23: iconst_1
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int[] int boolean[] int[] boolean[]
      StackMap stack: boolean[] int int
        24: bastore
        25: .line 504
      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   26     0                  this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   26     1       dirtyProperties  [I
            0   26     2    hasDirtyCollection  Z
            3   26     3         updateability  [Z
            4   26     4  propertyTableNumbers  [I
            5   26     5     tableUpdateNeeded  [Z
            7   13     6              property  I
            8   13    10                 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 509
            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 513
            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 517
            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 521
            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.EntityDataAccess, org.hibernate.cache.spi.access.NaturalIdDataAccess, org.hibernate.persister.spi.PersisterCreationContext);
    descriptor: (Lorg/hibernate/mapping/PersistentClass;Lorg/hibernate/cache/spi/access/EntityDataAccess;Lorg/hibernate/cache/spi/access/NaturalIdDataAccess;Lorg/hibernate/persister/spi/PersisterCreationContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=55, 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.EntityDataAccess cacheAccessStrategy
        start local 3 // org.hibernate.cache.spi.access.NaturalIdDataAccess naturalIdRegionAccessStrategy
        start local 4 // org.hibernate.persister.spi.PersisterCreationContext creationContext
         0: .line 525
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 201
            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 238
            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 240
            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 241
            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 244
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield org.hibernate.persister.entity.AbstractEntityPersister.loaders:Ljava/util/Map;
         6: .line 282
            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 283
            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 532
            aload 0 /* this */
            aload 4 /* creationContext */
            invokeinterface org.hibernate.persister.spi.PersisterCreationContext.getSessionFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
         9: .line 534
            aload 0 /* this */
            new org.hibernate.metamodel.model.domain.NavigableRole
            dup
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.getEntityName:()Ljava/lang/String;
            invokespecial org.hibernate.metamodel.model.domain.NavigableRole.<init>:(Ljava/lang/String;)V
            putfield org.hibernate.persister.entity.AbstractEntityPersister.navigableRole:Lorg/hibernate/metamodel/model/domain/NavigableRole;
        10: .line 536
            aload 4 /* creationContext */
            invokeinterface org.hibernate.persister.spi.PersisterCreationContext.getSessionFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isSecondLevelCacheEnabled:()Z
            ifeq 17
        11: .line 537
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* persistentClass */
            aload 2 /* cacheAccessStrategy */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.determineCanWriteToCache:(Lorg/hibernate/mapping/PersistentClass;Lorg/hibernate/cache/spi/access/EntityDataAccess;)Z
            putfield org.hibernate.persister.entity.AbstractEntityPersister.canWriteToCache:Z
        12: .line 538
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.determineCanReadFromCache:(Lorg/hibernate/mapping/PersistentClass;)Z
            putfield org.hibernate.persister.entity.AbstractEntityPersister.canReadFromCache:Z
        13: .line 539
            aload 0 /* this */
            aload 2 /* cacheAccessStrategy */
            putfield org.hibernate.persister.entity.AbstractEntityPersister.cacheAccessStrategy:Lorg/hibernate/cache/spi/access/EntityDataAccess;
        14: .line 540
            aload 0 /* this */
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.getRootClass:()Lorg/hibernate/mapping/RootClass;
            invokevirtual org.hibernate.mapping.RootClass.isLazyPropertiesCacheable:()Z
            putfield org.hibernate.persister.entity.AbstractEntityPersister.isLazyPropertiesCacheable:Z
        15: .line 541
            aload 0 /* this */
            aload 3 /* naturalIdRegionAccessStrategy */
            putfield org.hibernate.persister.entity.AbstractEntityPersister.naturalIdRegionAccessStrategy:Lorg/hibernate/cache/spi/access/NaturalIdDataAccess;
        16: .line 542
            goto 22
        17: .line 544
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass org.hibernate.cache.spi.access.EntityDataAccess org.hibernate.cache.spi.access.NaturalIdDataAccess org.hibernate.persister.spi.PersisterCreationContext
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield org.hibernate.persister.entity.AbstractEntityPersister.canWriteToCache:Z
        18: .line 545
            aload 0 /* this */
            iconst_0
            putfield org.hibernate.persister.entity.AbstractEntityPersister.canReadFromCache:Z
        19: .line 546
            aload 0 /* this */
            aconst_null
            putfield org.hibernate.persister.entity.AbstractEntityPersister.cacheAccessStrategy:Lorg/hibernate/cache/spi/access/EntityDataAccess;
        20: .line 547
            aload 0 /* this */
            iconst_1
            putfield org.hibernate.persister.entity.AbstractEntityPersister.isLazyPropertiesCacheable:Z
        21: .line 548
            aload 0 /* this */
            aconst_null
            putfield org.hibernate.persister.entity.AbstractEntityPersister.naturalIdRegionAccessStrategy:Lorg/hibernate/cache/spi/access/NaturalIdDataAccess;
        22: .line 551
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new org.hibernate.tuple.entity.EntityMetamodel
            dup
            aload 1 /* persistentClass */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokespecial org.hibernate.tuple.entity.EntityMetamodel.<init>:(Lorg/hibernate/mapping/PersistentClass;Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
            putfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
        23: .line 552
            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;
        24: .line 554
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.isMutable:()Z
            ifeq 27
        25: .line 555
            aload 0 /* this */
            getstatic org.hibernate.engine.internal.MutableEntityEntryFactory.INSTANCE:Lorg/hibernate/engine/internal/MutableEntityEntryFactory;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.entityEntryFactory:Lorg/hibernate/engine/spi/EntityEntryFactory;
        26: .line 556
            goto 28
        27: .line 558
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.hibernate.engine.internal.ImmutableEntityEntryFactory.INSTANCE:Lorg/hibernate/engine/internal/ImmutableEntityEntryFactory;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.entityEntryFactory:Lorg/hibernate/engine/spi/EntityEntryFactory;
        28: .line 562
      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.getServiceRegistry:()Lorg/hibernate/service/spi/ServiceRegistryImplementor;
            ldc Lorg/hibernate/engine/jdbc/spi/JdbcServices;
            invokeinterface org.hibernate.service.spi.ServiceRegistryImplementor.getService:(Ljava/lang/Class;)Lorg/hibernate/service/Service;
            checkcast org.hibernate.engine.jdbc.spi.JdbcServices
            astore 5 /* jdbcServices */
        start local 5 // org.hibernate.engine.jdbc.spi.JdbcServices jdbcServices
        29: .line 563
            aload 5 /* jdbcServices */
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcServices.getJdbcEnvironment:()Lorg/hibernate/engine/jdbc/env/spi/JdbcEnvironment;
            invokeinterface org.hibernate.engine.jdbc.env.spi.JdbcEnvironment.getDialect:()Lorg/hibernate/dialect/Dialect;
            astore 6 /* dialect */
        start local 6 // org.hibernate.dialect.Dialect dialect
        30: .line 565
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.getBatchSize:()I
            istore 7 /* batch */
        start local 7 // int batch
        31: .line 566
            iload 7 /* batch */
            iconst_m1
            if_icmpne 33
        32: .line 567
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.getDefaultBatchFetchSize:()I
            istore 7 /* batch */
        33: .line 569
      StackMap locals: org.hibernate.engine.jdbc.spi.JdbcServices org.hibernate.dialect.Dialect int
      StackMap stack:
            aload 0 /* this */
            iload 7 /* batch */
            putfield org.hibernate.persister.entity.AbstractEntityPersister.batchSize:I
        34: .line 570
            aload 0 /* this */
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.hasSubselectLoadableCollections:()Z
            putfield org.hibernate.persister.entity.AbstractEntityPersister.hasSubselectLoadableCollections:Z
        35: .line 572
            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;
        36: .line 576
            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
        37: .line 577
            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;
        38: .line 578
            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;
        39: .line 579
            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;
        40: .line 580
            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;
        41: .line 582
            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;
        42: .line 584
            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;
        43: .line 586
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.getIdentifier:()Lorg/hibernate/mapping/KeyValue;
            invokeinterface org.hibernate.mapping.KeyValue.getColumnIterator:()Ljava/util/Iterator;
            astore 8 /* iter */
        start local 8 // java.util.Iterator iter
        44: .line 587
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        45: .line 588
            goto 55
        46: .line 589
      StackMap locals: java.util.Iterator int
      StackMap stack:
            aload 8 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Column
            astore 10 /* col */
        start local 10 // org.hibernate.mapping.Column col
        47: .line 590
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.rootTableKeyColumnNames:[Ljava/lang/String;
            iload 9 /* i */
            aload 10 /* col */
            aload 6 /* dialect */
            invokevirtual org.hibernate.mapping.Column.getQuotedName:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            aastore
        48: .line 591
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.rootTableKeyColumnReaders:[Ljava/lang/String;
            iload 9 /* i */
            aload 10 /* col */
            aload 6 /* dialect */
            invokevirtual org.hibernate.mapping.Column.getReadExpr:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            aastore
        49: .line 592
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.rootTableKeyColumnReaderTemplates:[Ljava/lang/String;
            iload 9 /* i */
            aload 10 /* col */
        50: .line 593
            aload 6 /* dialect */
        51: .line 594
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSqlFunctionRegistry:()Lorg/hibernate/dialect/function/SQLFunctionRegistry;
        52: .line 592
            invokevirtual org.hibernate.mapping.Column.getTemplate:(Lorg/hibernate/dialect/Dialect;Lorg/hibernate/dialect/function/SQLFunctionRegistry;)Ljava/lang/String;
            aastore
        53: .line 596
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.identifierAliases:[Ljava/lang/String;
            iload 9 /* i */
            aload 10 /* col */
            aload 6 /* 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
        54: .line 597
            iinc 9 /* i */ 1
        end local 10 // org.hibernate.mapping.Column col
        55: .line 588
      StackMap locals:
      StackMap stack:
            aload 8 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 46
        56: .line 602
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.isVersioned:()Z
            ifeq 59
        57: .line 603
            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 6 /* dialect */
            invokevirtual org.hibernate.mapping.Column.getQuotedName:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.versionColumnName:Ljava/lang/String;
        58: .line 604
            goto 60
        59: .line 606
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.hibernate.persister.entity.AbstractEntityPersister.versionColumnName:Ljava/lang/String;
        60: .line 611
      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 62
        61: .line 612
            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 63
        62: .line 613
      StackMap locals:
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister
            aconst_null
        63: .line 611
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass org.hibernate.cache.spi.access.EntityDataAccess org.hibernate.cache.spi.access.NaturalIdDataAccess org.hibernate.persister.spi.PersisterCreationContext org.hibernate.engine.jdbc.spi.JdbcServices org.hibernate.dialect.Dialect int java.util.Iterator int
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String
            putfield org.hibernate.persister.entity.AbstractEntityPersister.sqlWhereString:Ljava/lang/String;
        64: .line 614
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlWhereString:Ljava/lang/String;
            ifnonnull 66
        65: .line 615
            aconst_null
            goto 70
        66: .line 617
      StackMap locals:
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlWhereString:Ljava/lang/String;
        67: .line 618
            aload 6 /* dialect */
        68: .line 619
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSqlFunctionRegistry:()Lorg/hibernate/dialect/function/SQLFunctionRegistry;
        69: .line 616
            invokestatic org.hibernate.sql.Template.renderWhereStringTemplate:(Ljava/lang/String;Lorg/hibernate/dialect/Dialect;Lorg/hibernate/dialect/function/SQLFunctionRegistry;)Ljava/lang/String;
        70: .line 614
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass org.hibernate.cache.spi.access.EntityDataAccess org.hibernate.cache.spi.access.NaturalIdDataAccess org.hibernate.persister.spi.PersisterCreationContext org.hibernate.engine.jdbc.spi.JdbcServices org.hibernate.dialect.Dialect 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;
        71: .line 624
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isInstrumented:()Z
            istore 10 /* lazyAvailable */
        start local 10 // boolean lazyAvailable
        72: .line 626
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertySpan:()I
            istore 11 /* hydrateSpan */
        start local 11 // int hydrateSpan
        73: .line 627
            aload 0 /* this */
            iload 11 /* hydrateSpan */
            newarray 10
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnSpans:[I
        74: .line 628
            aload 0 /* this */
            iload 11 /* hydrateSpan */
            anewarray java.lang.String
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertySubclassNames:[Ljava/lang/String;
        75: .line 629
            aload 0 /* this */
            iload 11 /* hydrateSpan */
            anewarray java.lang.String[]
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnAliases:[[Ljava/lang/String;
        76: .line 630
            aload 0 /* this */
            iload 11 /* hydrateSpan */
            anewarray java.lang.String[]
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnNames:[[Ljava/lang/String;
        77: .line 631
            aload 0 /* this */
            iload 11 /* hydrateSpan */
            anewarray java.lang.String[]
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnFormulaTemplates:[[Ljava/lang/String;
        78: .line 632
            aload 0 /* this */
            iload 11 /* hydrateSpan */
            anewarray java.lang.String[]
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnReaderTemplates:[[Ljava/lang/String;
        79: .line 633
            aload 0 /* this */
            iload 11 /* hydrateSpan */
            anewarray java.lang.String[]
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnWriters:[[Ljava/lang/String;
        80: .line 634
            aload 0 /* this */
            iload 11 /* hydrateSpan */
            newarray 4
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyUniqueness:[Z
        81: .line 635
            aload 0 /* this */
            iload 11 /* hydrateSpan */
            newarray 4
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertySelectable:[Z
        82: .line 636
            aload 0 /* this */
            iload 11 /* hydrateSpan */
            anewarray boolean[]
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnUpdateable:[[Z
        83: .line 637
            aload 0 /* this */
            iload 11 /* hydrateSpan */
            anewarray boolean[]
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnInsertable:[[Z
        84: .line 638
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 12 /* thisClassProperties */
        start local 12 // java.util.HashSet thisClassProperties
        85: .line 640
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 13 /* lazyNames */
        start local 13 // java.util.ArrayList lazyNames
        86: .line 641
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 14 /* lazyNumbers */
        start local 14 // java.util.ArrayList lazyNumbers
        87: .line 642
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 15 /* lazyTypes */
        start local 15 // java.util.ArrayList lazyTypes
        88: .line 643
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 16 /* lazyColAliases */
        start local 16 // java.util.ArrayList lazyColAliases
        89: .line 645
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.getPropertyClosureIterator:()Ljava/util/Iterator;
            astore 8 /* iter */
        90: .line 646
            iconst_0
            istore 9 /* i */
        91: .line 647
            iconst_0
            istore 17 /* foundFormula */
        start local 17 // boolean foundFormula
        92: .line 648
            goto 136
        93: .line 649
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass org.hibernate.cache.spi.access.EntityDataAccess org.hibernate.cache.spi.access.NaturalIdDataAccess org.hibernate.persister.spi.PersisterCreationContext org.hibernate.engine.jdbc.spi.JdbcServices org.hibernate.dialect.Dialect 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 8 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Property
            astore 18 /* prop */
        start local 18 // org.hibernate.mapping.Property prop
        94: .line 650
            aload 12 /* thisClassProperties */
            aload 18 /* prop */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        95: .line 652
            aload 18 /* prop */
            invokevirtual org.hibernate.mapping.Property.getColumnSpan:()I
            istore 19 /* span */
        start local 19 // int span
        96: .line 653
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnSpans:[I
            iload 9 /* i */
            iload 19 /* span */
            iastore
        97: .line 654
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertySubclassNames:[Ljava/lang/String;
            iload 9 /* i */
            aload 18 /* prop */
            invokevirtual org.hibernate.mapping.Property.getPersistentClass:()Lorg/hibernate/mapping/PersistentClass;
            invokevirtual org.hibernate.mapping.PersistentClass.getEntityName:()Ljava/lang/String;
            aastore
        98: .line 655
            iload 19 /* span */
            anewarray java.lang.String
            astore 20 /* colNames */
        start local 20 // java.lang.String[] colNames
        99: .line 656
            iload 19 /* span */
            anewarray java.lang.String
            astore 21 /* colAliases */
        start local 21 // java.lang.String[] colAliases
       100: .line 657
            iload 19 /* span */
            anewarray java.lang.String
            astore 22 /* colReaderTemplates */
        start local 22 // java.lang.String[] colReaderTemplates
       101: .line 658
            iload 19 /* span */
            anewarray java.lang.String
            astore 23 /* colWriters */
        start local 23 // java.lang.String[] colWriters
       102: .line 659
            iload 19 /* span */
            anewarray java.lang.String
            astore 24 /* formulaTemplates */
        start local 24 // java.lang.String[] formulaTemplates
       103: .line 660
            aload 18 /* prop */
            invokevirtual org.hibernate.mapping.Property.getColumnIterator:()Ljava/util/Iterator;
            astore 25 /* colIter */
        start local 25 // java.util.Iterator colIter
       104: .line 661
            iconst_0
            istore 26 /* k */
        start local 26 // int k
       105: .line 662
            goto 118
       106: .line 663
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass org.hibernate.cache.spi.access.EntityDataAccess org.hibernate.cache.spi.access.NaturalIdDataAccess org.hibernate.persister.spi.PersisterCreationContext org.hibernate.engine.jdbc.spi.JdbcServices org.hibernate.dialect.Dialect 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 25 /* colIter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Selectable
            astore 27 /* thing */
        start local 27 // org.hibernate.mapping.Selectable thing
       107: .line 664
            aload 21 /* colAliases */
            iload 26 /* k */
            aload 27 /* thing */
            aload 6 /* dialect */
            aload 18 /* 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
       108: .line 665
            aload 27 /* thing */
            invokeinterface org.hibernate.mapping.Selectable.isFormula:()Z
            ifeq 113
       109: .line 666
            iconst_1
            istore 17 /* foundFormula */
       110: .line 667
            aload 27 /* thing */
            checkcast org.hibernate.mapping.Formula
            aload 0 /* this */
            aload 27 /* thing */
            checkcast org.hibernate.mapping.Formula
            invokevirtual org.hibernate.mapping.Formula.getFormula:()Ljava/lang/String;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.substituteBrackets:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.hibernate.mapping.Formula.setFormula:(Ljava/lang/String;)V
       111: .line 668
            aload 24 /* formulaTemplates */
            iload 26 /* k */
            aload 27 /* thing */
            aload 6 /* dialect */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            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
       112: .line 669
            goto 117
       113: .line 671
      StackMap locals: org.hibernate.mapping.Selectable
      StackMap stack:
            aload 27 /* thing */
            checkcast org.hibernate.mapping.Column
            astore 28 /* col */
        start local 28 // org.hibernate.mapping.Column col
       114: .line 672
            aload 20 /* colNames */
            iload 26 /* k */
            aload 28 /* col */
            aload 6 /* dialect */
            invokevirtual org.hibernate.mapping.Column.getQuotedName:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            aastore
       115: .line 673
            aload 22 /* colReaderTemplates */
            iload 26 /* k */
            aload 28 /* col */
            aload 6 /* dialect */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            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
       116: .line 674
            aload 23 /* colWriters */
            iload 26 /* k */
            aload 28 /* col */
            invokevirtual org.hibernate.mapping.Column.getWriteExpr:()Ljava/lang/String;
            aastore
        end local 28 // org.hibernate.mapping.Column col
       117: .line 676
      StackMap locals:
      StackMap stack:
            iinc 26 /* k */ 1
        end local 27 // org.hibernate.mapping.Selectable thing
       118: .line 662
      StackMap locals:
      StackMap stack:
            aload 25 /* colIter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 106
       119: .line 678
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnNames:[[Ljava/lang/String;
            iload 9 /* i */
            aload 20 /* colNames */
            aastore
       120: .line 679
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnFormulaTemplates:[[Ljava/lang/String;
            iload 9 /* i */
            aload 24 /* formulaTemplates */
            aastore
       121: .line 680
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnReaderTemplates:[[Ljava/lang/String;
            iload 9 /* i */
            aload 22 /* colReaderTemplates */
            aastore
       122: .line 681
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnWriters:[[Ljava/lang/String;
            iload 9 /* i */
            aload 23 /* colWriters */
            aastore
       123: .line 682
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnAliases:[[Ljava/lang/String;
            iload 9 /* i */
            aload 21 /* colAliases */
            aastore
       124: .line 684
            iload 10 /* lazyAvailable */
            ifeq 129
            aload 18 /* prop */
            invokevirtual org.hibernate.mapping.Property.isLazy:()Z
            ifeq 129
       125: .line 685
            aload 13 /* lazyNames */
            aload 18 /* prop */
            invokevirtual org.hibernate.mapping.Property.getName:()Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       126: .line 686
            aload 14 /* lazyNumbers */
            iload 9 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       127: .line 687
            aload 15 /* lazyTypes */
            aload 18 /* 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
       128: .line 688
            aload 16 /* lazyColAliases */
            aload 21 /* colAliases */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       129: .line 691
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnUpdateable:[[Z
            iload 9 /* i */
            aload 18 /* prop */
            invokevirtual org.hibernate.mapping.Property.getValue:()Lorg/hibernate/mapping/Value;
            invokeinterface org.hibernate.mapping.Value.getColumnUpdateability:()[Z
            aastore
       130: .line 692
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnInsertable:[[Z
            iload 9 /* i */
            aload 18 /* prop */
            invokevirtual org.hibernate.mapping.Property.getValue:()Lorg/hibernate/mapping/Value;
            invokeinterface org.hibernate.mapping.Value.getColumnInsertability:()[Z
            aastore
       131: .line 694
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertySelectable:[Z
            iload 9 /* i */
            aload 18 /* prop */
            invokevirtual org.hibernate.mapping.Property.isSelectable:()Z
            bastore
       132: .line 696
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyUniqueness:[Z
            iload 9 /* i */
            aload 18 /* prop */
            invokevirtual org.hibernate.mapping.Property.getValue:()Lorg/hibernate/mapping/Value;
            invokeinterface org.hibernate.mapping.Value.isAlternateUniqueKey:()Z
            bastore
       133: .line 698
            aload 18 /* prop */
            invokevirtual org.hibernate.mapping.Property.isLob:()Z
            ifeq 135
            aload 6 /* dialect */
            invokevirtual org.hibernate.dialect.Dialect.forceLobAsLastValue:()Z
            ifeq 135
       134: .line 699
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lobProperties:Ljava/util/List;
            iload 9 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       135: .line 702
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
        end local 26 // int k
        end local 25 // java.util.Iterator colIter
        end local 24 // java.lang.String[] formulaTemplates
        end local 23 // java.lang.String[] colWriters
        end local 22 // java.lang.String[] colReaderTemplates
        end local 21 // java.lang.String[] colAliases
        end local 20 // java.lang.String[] colNames
        end local 19 // int span
        end local 18 // org.hibernate.mapping.Property prop
       136: .line 648
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass org.hibernate.cache.spi.access.EntityDataAccess org.hibernate.cache.spi.access.NaturalIdDataAccess org.hibernate.persister.spi.PersisterCreationContext org.hibernate.engine.jdbc.spi.JdbcServices org.hibernate.dialect.Dialect 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 8 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 93
       137: .line 705
            aload 0 /* this */
            iload 17 /* foundFormula */
            putfield org.hibernate.persister.entity.AbstractEntityPersister.hasFormulaProperties:Z
       138: .line 706
            aload 0 /* this */
            aload 16 /* 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;
       139: .line 707
            aload 0 /* this */
            aload 13 /* 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;
       140: .line 708
            aload 0 /* this */
            aload 14 /* lazyNumbers */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toIntArray:(Ljava/util/Collection;)[I
            putfield org.hibernate.persister.entity.AbstractEntityPersister.lazyPropertyNumbers:[I
       141: .line 709
            aload 0 /* this */
            aload 15 /* 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;
       142: .line 713
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 18 /* columns */
        start local 18 // java.util.ArrayList columns
       143: .line 714
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 19 /* columnsLazy */
        start local 19 // java.util.ArrayList columnsLazy
       144: .line 715
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 20 /* columnReaderTemplates */
        start local 20 // java.util.ArrayList columnReaderTemplates
       145: .line 716
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 21 /* aliases */
        start local 21 // java.util.ArrayList aliases
       146: .line 717
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 22 /* formulas */
        start local 22 // java.util.ArrayList formulas
       147: .line 718
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 23 /* formulaAliases */
        start local 23 // java.util.ArrayList formulaAliases
       148: .line 719
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 24 /* formulaTemplates */
        start local 24 // java.util.ArrayList formulaTemplates
       149: .line 720
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 25 /* formulasLazy */
        start local 25 // java.util.ArrayList formulasLazy
       150: .line 721
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 26 /* types */
        start local 26 // java.util.ArrayList types
       151: .line 722
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 27 /* names */
        start local 27 // java.util.ArrayList names
       152: .line 723
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 28 /* classes */
        start local 28 // java.util.ArrayList classes
       153: .line 724
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 29 /* templates */
        start local 29 // java.util.ArrayList templates
       154: .line 725
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 30 /* propColumns */
        start local 30 // java.util.ArrayList propColumns
       155: .line 726
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 31 /* propColumnReaders */
        start local 31 // java.util.ArrayList propColumnReaders
       156: .line 727
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 32 /* propColumnReaderTemplates */
        start local 32 // java.util.ArrayList propColumnReaderTemplates
       157: .line 728
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 33 /* joinedFetchesList */
        start local 33 // java.util.ArrayList joinedFetchesList
       158: .line 729
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 34 /* cascades */
        start local 34 // java.util.ArrayList cascades
       159: .line 730
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 35 /* definedBySubclass */
        start local 35 // java.util.ArrayList definedBySubclass
       160: .line 731
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 36 /* propColumnNumbers */
        start local 36 // java.util.ArrayList propColumnNumbers
       161: .line 732
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 37 /* propFormulaNumbers */
        start local 37 // java.util.ArrayList propFormulaNumbers
       162: .line 733
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 38 /* columnSelectables */
        start local 38 // java.util.ArrayList columnSelectables
       163: .line 734
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 39 /* propNullables */
        start local 39 // java.util.ArrayList propNullables
       164: .line 736
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.getSubclassPropertyClosureIterator:()Ljava/util/Iterator;
            astore 8 /* iter */
       165: .line 737
            goto 223
       166: .line 738
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass org.hibernate.cache.spi.access.EntityDataAccess org.hibernate.cache.spi.access.NaturalIdDataAccess org.hibernate.persister.spi.PersisterCreationContext org.hibernate.engine.jdbc.spi.JdbcServices org.hibernate.dialect.Dialect 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 8 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Property
            astore 40 /* prop */
        start local 40 // org.hibernate.mapping.Property prop
       167: .line 739
            aload 27 /* names */
            aload 40 /* prop */
            invokevirtual org.hibernate.mapping.Property.getName:()Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       168: .line 740
            aload 28 /* classes */
            aload 40 /* 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
       169: .line 741
            aload 12 /* thisClassProperties */
            aload 40 /* prop */
            invokevirtual java.util.HashSet.contains:(Ljava/lang/Object;)Z
            ifeq 170
            iconst_0
            goto 171
      StackMap locals: org.hibernate.mapping.Property
      StackMap stack:
       170: iconst_1
      StackMap locals:
      StackMap stack: int
       171: istore 41 /* isDefinedBySubclass */
        start local 41 // boolean isDefinedBySubclass
       172: .line 742
            aload 35 /* definedBySubclass */
            iload 41 /* isDefinedBySubclass */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       173: .line 743
            aload 39 /* propNullables */
            aload 40 /* prop */
            invokevirtual org.hibernate.mapping.Property.isOptional:()Z
            ifne 174
            iload 41 /* isDefinedBySubclass */
            ifne 174
            iconst_0
            goto 175
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass org.hibernate.cache.spi.access.EntityDataAccess org.hibernate.cache.spi.access.NaturalIdDataAccess org.hibernate.persister.spi.PersisterCreationContext org.hibernate.engine.jdbc.spi.JdbcServices org.hibernate.dialect.Dialect 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
       174: iconst_1
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass org.hibernate.cache.spi.access.EntityDataAccess org.hibernate.cache.spi.access.NaturalIdDataAccess org.hibernate.persister.spi.PersisterCreationContext org.hibernate.engine.jdbc.spi.JdbcServices org.hibernate.dialect.Dialect 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
       175: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       176: .line 744
            aload 26 /* types */
            aload 40 /* prop */
            invokevirtual org.hibernate.mapping.Property.getType:()Lorg/hibernate/type/Type;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       177: .line 746
            aload 40 /* prop */
            invokevirtual org.hibernate.mapping.Property.getColumnIterator:()Ljava/util/Iterator;
            astore 42 /* colIter */
        start local 42 // java.util.Iterator colIter
       178: .line 747
            aload 40 /* prop */
            invokevirtual org.hibernate.mapping.Property.getColumnSpan:()I
            anewarray java.lang.String
            astore 43 /* cols */
        start local 43 // java.lang.String[] cols
       179: .line 748
            aload 40 /* prop */
            invokevirtual org.hibernate.mapping.Property.getColumnSpan:()I
            anewarray java.lang.String
            astore 44 /* readers */
        start local 44 // java.lang.String[] readers
       180: .line 749
            aload 40 /* prop */
            invokevirtual org.hibernate.mapping.Property.getColumnSpan:()I
            anewarray java.lang.String
            astore 45 /* readerTemplates */
        start local 45 // java.lang.String[] readerTemplates
       181: .line 750
            aload 40 /* prop */
            invokevirtual org.hibernate.mapping.Property.getColumnSpan:()I
            anewarray java.lang.String
            astore 46 /* forms */
        start local 46 // java.lang.String[] forms
       182: .line 751
            aload 40 /* prop */
            invokevirtual org.hibernate.mapping.Property.getColumnSpan:()I
            newarray 10
            astore 47 /* colnos */
        start local 47 // int[] colnos
       183: .line 752
            aload 40 /* prop */
            invokevirtual org.hibernate.mapping.Property.getColumnSpan:()I
            newarray 10
            astore 48 /* formnos */
        start local 48 // int[] formnos
       184: .line 753
            iconst_0
            istore 49 /* l */
        start local 49 // int l
       185: .line 754
            aload 40 /* prop */
            invokevirtual org.hibernate.mapping.Property.isLazy:()Z
            ifeq 186
            iload 10 /* lazyAvailable */
            ifeq 186
            iconst_1
            goto 187
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass org.hibernate.cache.spi.access.EntityDataAccess org.hibernate.cache.spi.access.NaturalIdDataAccess org.hibernate.persister.spi.PersisterCreationContext org.hibernate.engine.jdbc.spi.JdbcServices org.hibernate.dialect.Dialect 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:
       186: iconst_0
      StackMap locals:
      StackMap stack: int
       187: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            astore 50 /* lazy */
        start local 50 // java.lang.Boolean lazy
       188: .line 755
            goto 214
       189: .line 756
      StackMap locals: java.lang.Boolean
      StackMap stack:
            aload 42 /* colIter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Selectable
            astore 51 /* thing */
        start local 51 // org.hibernate.mapping.Selectable thing
       190: .line 757
            aload 51 /* thing */
            invokeinterface org.hibernate.mapping.Selectable.isFormula:()Z
            ifeq 200
       191: .line 758
            aload 51 /* thing */
            aload 6 /* dialect */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            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 52 /* template */
        start local 52 // java.lang.String template
       192: .line 759
            aload 48 /* formnos */
            iload 49 /* l */
            aload 24 /* formulaTemplates */
            invokevirtual java.util.ArrayList.size:()I
            iastore
       193: .line 760
            aload 47 /* colnos */
            iload 49 /* l */
            iconst_m1
            iastore
       194: .line 761
            aload 24 /* formulaTemplates */
            aload 52 /* template */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       195: .line 762
            aload 46 /* forms */
            iload 49 /* l */
            aload 52 /* template */
            aastore
       196: .line 763
            aload 22 /* formulas */
            aload 51 /* thing */
            aload 6 /* dialect */
            invokeinterface org.hibernate.mapping.Selectable.getText:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       197: .line 764
            aload 23 /* formulaAliases */
            aload 51 /* thing */
            aload 6 /* dialect */
            invokeinterface org.hibernate.mapping.Selectable.getAlias:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       198: .line 765
            aload 25 /* formulasLazy */
            aload 50 /* lazy */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 52 // java.lang.String template
       199: .line 766
            goto 213
       200: .line 768
      StackMap locals: org.hibernate.mapping.Selectable
      StackMap stack:
            aload 51 /* thing */
            checkcast org.hibernate.mapping.Column
            astore 52 /* col */
        start local 52 // org.hibernate.mapping.Column col
       201: .line 769
            aload 52 /* col */
            aload 6 /* dialect */
            invokevirtual org.hibernate.mapping.Column.getQuotedName:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            astore 53 /* colName */
        start local 53 // java.lang.String colName
       202: .line 770
            aload 47 /* colnos */
            iload 49 /* l */
            aload 18 /* columns */
            invokevirtual java.util.ArrayList.size:()I
            iastore
       203: .line 771
            aload 48 /* formnos */
            iload 49 /* l */
            iconst_m1
            iastore
       204: .line 772
            aload 18 /* columns */
            aload 53 /* colName */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       205: .line 773
            aload 43 /* cols */
            iload 49 /* l */
            aload 53 /* colName */
            aastore
       206: .line 774
            aload 21 /* aliases */
            aload 51 /* thing */
            aload 6 /* dialect */
            aload 40 /* 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
       207: .line 775
            aload 19 /* columnsLazy */
            aload 50 /* lazy */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       208: .line 776
            aload 38 /* columnSelectables */
            aload 40 /* 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
       209: .line 778
            aload 44 /* readers */
            iload 49 /* l */
            aload 52 /* col */
            aload 6 /* dialect */
            invokevirtual org.hibernate.mapping.Column.getReadExpr:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            aastore
       210: .line 779
            aload 52 /* col */
            aload 6 /* dialect */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            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 54 /* readerTemplate */
        start local 54 // java.lang.String readerTemplate
       211: .line 780
            aload 45 /* readerTemplates */
            iload 49 /* l */
            aload 54 /* readerTemplate */
            aastore
       212: .line 781
            aload 20 /* columnReaderTemplates */
            aload 54 /* readerTemplate */
            invokevirtual java.util.ArrayList.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.mapping.Column col
       213: .line 783
      StackMap locals:
      StackMap stack:
            iinc 49 /* l */ 1
        end local 51 // org.hibernate.mapping.Selectable thing
       214: .line 755
      StackMap locals:
      StackMap stack:
            aload 42 /* colIter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 189
       215: .line 785
            aload 30 /* propColumns */
            aload 43 /* cols */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       216: .line 786
            aload 31 /* propColumnReaders */
            aload 44 /* readers */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       217: .line 787
            aload 32 /* propColumnReaderTemplates */
            aload 45 /* readerTemplates */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       218: .line 788
            aload 29 /* templates */
            aload 46 /* forms */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       219: .line 789
            aload 36 /* propColumnNumbers */
            aload 47 /* colnos */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       220: .line 790
            aload 37 /* propFormulaNumbers */
            aload 48 /* formnos */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       221: .line 792
            aload 33 /* joinedFetchesList */
            aload 40 /* 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
       222: .line 793
            aload 34 /* cascades */
            aload 40 /* prop */
            invokevirtual org.hibernate.mapping.Property.getCascadeStyle:()Lorg/hibernate/engine/spi/CascadeStyle;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 50 // java.lang.Boolean lazy
        end local 49 // int l
        end local 48 // int[] formnos
        end local 47 // int[] colnos
        end local 46 // java.lang.String[] forms
        end local 45 // java.lang.String[] readerTemplates
        end local 44 // java.lang.String[] readers
        end local 43 // java.lang.String[] cols
        end local 42 // java.util.Iterator colIter
        end local 41 // boolean isDefinedBySubclass
        end local 40 // org.hibernate.mapping.Property prop
       223: .line 737
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass org.hibernate.cache.spi.access.EntityDataAccess org.hibernate.cache.spi.access.NaturalIdDataAccess org.hibernate.persister.spi.PersisterCreationContext org.hibernate.engine.jdbc.spi.JdbcServices org.hibernate.dialect.Dialect 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 8 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 166
       224: .line 795
            aload 0 /* this */
            aload 18 /* 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;
       225: .line 796
            aload 0 /* this */
            aload 21 /* 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;
       226: .line 797
            aload 0 /* this */
            aload 19 /* columnsLazy */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toBooleanArray:(Ljava/util/Collection;)[Z
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassColumnLazyClosure:[Z
       227: .line 798
            aload 0 /* this */
            aload 38 /* columnSelectables */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toBooleanArray:(Ljava/util/Collection;)[Z
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassColumnSelectableClosure:[Z
       228: .line 799
            aload 0 /* this */
            aload 20 /* 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;
       229: .line 801
            aload 0 /* this */
            aload 22 /* 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;
       230: .line 802
            aload 0 /* this */
            aload 24 /* 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;
       231: .line 803
            aload 0 /* this */
            aload 23 /* 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;
       232: .line 804
            aload 0 /* this */
            aload 25 /* formulasLazy */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toBooleanArray:(Ljava/util/Collection;)[Z
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassFormulaLazyClosure:[Z
       233: .line 806
            aload 0 /* this */
            aload 27 /* 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;
       234: .line 807
            aload 0 /* this */
            aload 28 /* 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;
       235: .line 808
            aload 0 /* this */
            aload 26 /* 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;
       236: .line 809
            aload 0 /* this */
            aload 39 /* propNullables */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toBooleanArray:(Ljava/util/Collection;)[Z
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyNullabilityClosure:[Z
       237: .line 810
            aload 0 /* this */
            aload 29 /* 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;
       238: .line 811
            aload 0 /* this */
            aload 30 /* 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;
       239: .line 812
            aload 0 /* this */
            aload 31 /* 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;
       240: .line 813
            aload 0 /* this */
            aload 32 /* 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;
       241: .line 814
            aload 0 /* this */
            aload 36 /* propColumnNumbers */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.to2DIntArray:(Ljava/util/Collection;)[[I
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNumberClosure:[[I
       242: .line 815
            aload 0 /* this */
            aload 37 /* propFormulaNumbers */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.to2DIntArray:(Ljava/util/Collection;)[[I
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyFormulaNumberClosure:[[I
       243: .line 817
            aload 0 /* this */
            aload 34 /* 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;
       244: .line 818
            aload 34 /* cascades */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 8 /* iter */
       245: .line 819
            iconst_0
            istore 40 /* j */
        start local 40 // int j
       246: .line 820
            goto 248
       247: .line 821
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyCascadeStyleClosure:[Lorg/hibernate/engine/spi/CascadeStyle;
            iload 40 /* j */
            iinc 40 /* j */ 1
            aload 8 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.engine.spi.CascadeStyle
            aastore
       248: .line 820
      StackMap locals:
      StackMap stack:
            aload 8 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 247
       249: .line 823
            aload 0 /* this */
            aload 33 /* joinedFetchesList */
            invokevirtual java.util.ArrayList.size:()I
            anewarray org.hibernate.FetchMode
            putfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyFetchModeClosure:[Lorg/hibernate/FetchMode;
       250: .line 824
            aload 33 /* joinedFetchesList */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 8 /* iter */
       251: .line 825
            iconst_0
            istore 40 /* j */
       252: .line 826
            goto 254
       253: .line 827
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyFetchModeClosure:[Lorg/hibernate/FetchMode;
            iload 40 /* j */
            iinc 40 /* j */ 1
            aload 8 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.FetchMode
            aastore
       254: .line 826
      StackMap locals:
      StackMap stack:
            aload 8 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 253
       255: .line 830
            aload 0 /* this */
            aload 35 /* definedBySubclass */
            invokevirtual java.util.ArrayList.size:()I
            newarray 4
            putfield org.hibernate.persister.entity.AbstractEntityPersister.propertyDefinedOnSubclass:[Z
       256: .line 831
            aload 35 /* definedBySubclass */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 8 /* iter */
       257: .line 832
            iconst_0
            istore 40 /* j */
       258: .line 833
            goto 260
       259: .line 834
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyDefinedOnSubclass:[Z
            iload 40 /* j */
            iinc 40 /* j */ 1
            aload 8 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            bastore
       260: .line 833
      StackMap locals:
      StackMap stack:
            aload 8 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 259
       261: .line 838
            aload 0 /* this */
            new org.hibernate.internal.FilterHelper
            dup
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.getFilters:()Ljava/util/List;
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            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 842
            iconst_1
            istore 41 /* refCacheEntries */
        start local 41 // boolean refCacheEntries
       263: .line 843
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isDirectReferenceCacheEntriesEnabled:()Z
            ifne 265
       264: .line 844
            iconst_0
            istore 41 /* refCacheEntries */
       265: .line 849
      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.isMutable:()Z
            ifeq 267
       266: .line 850
            iconst_0
            istore 41 /* refCacheEntries */
       267: .line 854
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyTypeClosure:()[Lorg/hibernate/type/Type;
            dup
            astore 45
            arraylength
            istore 44
            iconst_0
            istore 43
            goto 272
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass org.hibernate.cache.spi.access.EntityDataAccess org.hibernate.cache.spi.access.NaturalIdDataAccess org.hibernate.persister.spi.PersisterCreationContext org.hibernate.engine.jdbc.spi.JdbcServices org.hibernate.dialect.Dialect 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 int int top int int org.hibernate.type.Type[]
      StackMap stack:
       268: aload 45
            iload 43
            aaload
            astore 42 /* type */
        start local 42 // org.hibernate.type.Type type
       269: .line 855
            aload 42 /* type */
            invokeinterface org.hibernate.type.Type.isAssociationType:()Z
            ifeq 271
       270: .line 856
            iconst_0
            istore 41 /* refCacheEntries */
        end local 42 // org.hibernate.type.Type type
       271: .line 854
      StackMap locals:
      StackMap stack:
            iinc 43 1
      StackMap locals:
      StackMap stack:
       272: iload 43
            iload 44
            if_icmplt 268
       273: .line 860
            aload 0 /* this */
            iload 41 /* refCacheEntries */
            putfield org.hibernate.persister.entity.AbstractEntityPersister.useReferenceCacheEntries:Z
       274: .line 862
            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;
       275: .line 864
            aload 4 /* creationContext */
            invokeinterface org.hibernate.persister.spi.PersisterCreationContext.getSessionFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isSecondLevelCacheEnabled:()Z
            ifeq 280
       276: .line 865
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.canWriteToCache:Z
            ifeq 277
            aload 0 /* this */
            aload 1 /* persistentClass */
            aload 4 /* creationContext */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.determineWhetherToInvalidateCache:(Lorg/hibernate/mapping/PersistentClass;Lorg/hibernate/persister/spi/PersisterCreationContext;)Z
            ifeq 277
            iconst_1
            goto 278
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass org.hibernate.cache.spi.access.EntityDataAccess org.hibernate.cache.spi.access.NaturalIdDataAccess org.hibernate.persister.spi.PersisterCreationContext org.hibernate.engine.jdbc.spi.JdbcServices org.hibernate.dialect.Dialect 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 int int
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister
       277: iconst_0
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.mapping.PersistentClass org.hibernate.cache.spi.access.EntityDataAccess org.hibernate.cache.spi.access.NaturalIdDataAccess org.hibernate.persister.spi.PersisterCreationContext org.hibernate.engine.jdbc.spi.JdbcServices org.hibernate.dialect.Dialect 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 int int
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister int
       278: putfield org.hibernate.persister.entity.AbstractEntityPersister.invalidateCache:Z
       279: .line 866
            goto 281
       280: .line 868
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield org.hibernate.persister.entity.AbstractEntityPersister.invalidateCache:Z
       281: .line 871
      StackMap locals:
      StackMap stack:
            return
        end local 41 // boolean refCacheEntries
        end local 40 // int j
        end local 39 // java.util.ArrayList propNullables
        end local 38 // java.util.ArrayList columnSelectables
        end local 37 // java.util.ArrayList propFormulaNumbers
        end local 36 // java.util.ArrayList propColumnNumbers
        end local 35 // java.util.ArrayList definedBySubclass
        end local 34 // java.util.ArrayList cascades
        end local 33 // java.util.ArrayList joinedFetchesList
        end local 32 // java.util.ArrayList propColumnReaderTemplates
        end local 31 // java.util.ArrayList propColumnReaders
        end local 30 // java.util.ArrayList propColumns
        end local 29 // java.util.ArrayList templates
        end local 28 // java.util.ArrayList classes
        end local 27 // java.util.ArrayList names
        end local 26 // java.util.ArrayList types
        end local 25 // java.util.ArrayList formulasLazy
        end local 24 // java.util.ArrayList formulaTemplates
        end local 23 // java.util.ArrayList formulaAliases
        end local 22 // java.util.ArrayList formulas
        end local 21 // java.util.ArrayList aliases
        end local 20 // java.util.ArrayList columnReaderTemplates
        end local 19 // java.util.ArrayList columnsLazy
        end local 18 // java.util.ArrayList columns
        end local 17 // boolean foundFormula
        end local 16 // java.util.ArrayList lazyColAliases
        end local 15 // java.util.ArrayList lazyTypes
        end local 14 // java.util.ArrayList lazyNumbers
        end local 13 // java.util.ArrayList lazyNames
        end local 12 // java.util.HashSet thisClassProperties
        end local 11 // int hydrateSpan
        end local 10 // boolean lazyAvailable
        end local 9 // int i
        end local 8 // java.util.Iterator iter
        end local 7 // int batch
        end local 6 // org.hibernate.dialect.Dialect dialect
        end local 5 // org.hibernate.engine.jdbc.spi.JdbcServices jdbcServices
        end local 4 // org.hibernate.persister.spi.PersisterCreationContext creationContext
        end local 3 // org.hibernate.cache.spi.access.NaturalIdDataAccess naturalIdRegionAccessStrategy
        end local 2 // org.hibernate.cache.spi.access.EntityDataAccess 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  282     0                           this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0  282     1                persistentClass  Lorg/hibernate/mapping/PersistentClass;
            0  282     2            cacheAccessStrategy  Lorg/hibernate/cache/spi/access/EntityDataAccess;
            0  282     3  naturalIdRegionAccessStrategy  Lorg/hibernate/cache/spi/access/NaturalIdDataAccess;
            0  282     4                creationContext  Lorg/hibernate/persister/spi/PersisterCreationContext;
           29  282     5                   jdbcServices  Lorg/hibernate/engine/jdbc/spi/JdbcServices;
           30  282     6                        dialect  Lorg/hibernate/dialect/Dialect;
           31  282     7                          batch  I
           44  282     8                           iter  Ljava/util/Iterator;
           45  282     9                              i  I
           47   55    10                            col  Lorg/hibernate/mapping/Column;
           72  282    10                  lazyAvailable  Z
           73  282    11                    hydrateSpan  I
           85  282    12            thisClassProperties  Ljava/util/HashSet;
           86  282    13                      lazyNames  Ljava/util/ArrayList;
           87  282    14                    lazyNumbers  Ljava/util/ArrayList;
           88  282    15                      lazyTypes  Ljava/util/ArrayList;
           89  282    16                 lazyColAliases  Ljava/util/ArrayList;
           92  282    17                   foundFormula  Z
           94  136    18                           prop  Lorg/hibernate/mapping/Property;
           96  136    19                           span  I
           99  136    20                       colNames  [Ljava/lang/String;
          100  136    21                     colAliases  [Ljava/lang/String;
          101  136    22             colReaderTemplates  [Ljava/lang/String;
          102  136    23                     colWriters  [Ljava/lang/String;
          103  136    24               formulaTemplates  [Ljava/lang/String;
          104  136    25                        colIter  Ljava/util/Iterator;
          105  136    26                              k  I
          107  118    27                          thing  Lorg/hibernate/mapping/Selectable;
          114  117    28                            col  Lorg/hibernate/mapping/Column;
          143  282    18                        columns  Ljava/util/ArrayList;
          144  282    19                    columnsLazy  Ljava/util/ArrayList;
          145  282    20          columnReaderTemplates  Ljava/util/ArrayList;
          146  282    21                        aliases  Ljava/util/ArrayList;
          147  282    22                       formulas  Ljava/util/ArrayList;
          148  282    23                 formulaAliases  Ljava/util/ArrayList;
          149  282    24               formulaTemplates  Ljava/util/ArrayList;
          150  282    25                   formulasLazy  Ljava/util/ArrayList;
          151  282    26                          types  Ljava/util/ArrayList;
          152  282    27                          names  Ljava/util/ArrayList;
          153  282    28                        classes  Ljava/util/ArrayList;
          154  282    29                      templates  Ljava/util/ArrayList;
          155  282    30                    propColumns  Ljava/util/ArrayList;
          156  282    31              propColumnReaders  Ljava/util/ArrayList;
          157  282    32      propColumnReaderTemplates  Ljava/util/ArrayList;
          158  282    33              joinedFetchesList  Ljava/util/ArrayList;
          159  282    34                       cascades  Ljava/util/ArrayList;
          160  282    35              definedBySubclass  Ljava/util/ArrayList;
          161  282    36              propColumnNumbers  Ljava/util/ArrayList;
          162  282    37             propFormulaNumbers  Ljava/util/ArrayList;
          163  282    38              columnSelectables  Ljava/util/ArrayList;
          164  282    39                  propNullables  Ljava/util/ArrayList;
          167  223    40                           prop  Lorg/hibernate/mapping/Property;
          172  223    41            isDefinedBySubclass  Z
          178  223    42                        colIter  Ljava/util/Iterator;
          179  223    43                           cols  [Ljava/lang/String;
          180  223    44                        readers  [Ljava/lang/String;
          181  223    45                readerTemplates  [Ljava/lang/String;
          182  223    46                          forms  [Ljava/lang/String;
          183  223    47                         colnos  [I
          184  223    48                        formnos  [I
          185  223    49                              l  I
          188  223    50                           lazy  Ljava/lang/Boolean;
          190  214    51                          thing  Lorg/hibernate/mapping/Selectable;
          192  199    52                       template  Ljava/lang/String;
          201  213    52                            col  Lorg/hibernate/mapping/Column;
          202  213    53                        colName  Ljava/lang/String;
          211  213    54                 readerTemplate  Ljava/lang/String;
          246  282    40                              j  I
          263  282    41                refCacheEntries  Z
          269  271    42                           type  Lorg/hibernate/type/Type;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                               Name  Flags
      persistentClass                final
      cacheAccessStrategy            final
      naturalIdRegionAccessStrategy  final
      creationContext                final

  private boolean determineWhetherToInvalidateCache(org.hibernate.mapping.PersistentClass, org.hibernate.persister.spi.PersisterCreationContext);
    descriptor: (Lorg/hibernate/mapping/PersistentClass;Lorg/hibernate/persister/spi/PersisterCreationContext;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.mapping.PersistentClass persistentClass
        start local 2 // org.hibernate.persister.spi.PersisterCreationContext creationContext
         0: .line 877
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasFormulaProperties:()Z
            ifeq 2
         1: .line 878
            iconst_1
            ireturn
         2: .line 881
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifeq 4
         3: .line 882
            iconst_0
            ireturn
         4: .line 885
      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.isDynamicUpdate:()Z
            ifeq 6
         5: .line 886
            iconst_0
            ireturn
         6: .line 890
      StackMap locals:
      StackMap stack:
            aload 2 /* creationContext */
            invokeinterface org.hibernate.persister.spi.PersisterCreationContext.getSessionFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
         7: .line 891
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
         8: .line 892
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.getJpaCompliance:()Lorg/hibernate/jpa/spi/JpaCompliance;
         9: .line 893
            invokeinterface org.hibernate.jpa.spi.JpaCompliance.isJpaCacheComplianceEnabled:()Z
        10: .line 890
            istore 3 /* complianceEnabled */
        start local 3 // boolean complianceEnabled
        11: .line 894
            iload 3 /* complianceEnabled */
            ifeq 13
        12: .line 898
            iconst_0
            ireturn
        13: .line 901
      StackMap locals: int
      StackMap stack:
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.getJoinClosureSpan:()I
            iconst_1
            if_icmplt 15
        14: .line 904
            iconst_1
            ireturn
        15: .line 907
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // boolean complianceEnabled
        end local 2 // org.hibernate.persister.spi.PersisterCreationContext creationContext
        end local 1 // org.hibernate.mapping.PersistentClass persistentClass
        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    persistentClass  Lorg/hibernate/mapping/PersistentClass;
            0   16     2    creationContext  Lorg/hibernate/persister/spi/PersisterCreationContext;
           11   16     3  complianceEnabled  Z
    MethodParameters:
                 Name  Flags
      persistentClass  
      creationContext  

  private boolean determineCanWriteToCache(org.hibernate.mapping.PersistentClass, org.hibernate.cache.spi.access.EntityDataAccess);
    descriptor: (Lorg/hibernate/mapping/PersistentClass;Lorg/hibernate/cache/spi/access/EntityDataAccess;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=3, args_size=3
        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.EntityDataAccess cacheAccessStrategy
         0: .line 911
            aload 2 /* cacheAccessStrategy */
            ifnonnull 2
         1: .line 912
            iconst_0
            ireturn
         2: .line 915
      StackMap locals:
      StackMap stack:
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.isCached:()Z
            ireturn
        end local 2 // org.hibernate.cache.spi.access.EntityDataAccess 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    3     0                 this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    3     1      persistentClass  Lorg/hibernate/mapping/PersistentClass;
            0    3     2  cacheAccessStrategy  Lorg/hibernate/cache/spi/access/EntityDataAccess;
    MethodParameters:
                     Name  Flags
      persistentClass      
      cacheAccessStrategy  

  private boolean determineCanReadFromCache(org.hibernate.mapping.PersistentClass);
    descriptor: (Lorg/hibernate/mapping/PersistentClass;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=4, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.mapping.PersistentClass persistentClass
         0: .line 920
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.isCached:()Z
            ifeq 2
         1: .line 921
            iconst_1
            ireturn
         2: .line 924
      StackMap locals:
      StackMap stack:
            aload 1 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.getSubclassIterator:()Ljava/util/Iterator;
            astore 2 /* subclassIterator */
        start local 2 // java.util.Iterator subclassIterator
         3: .line 925
            goto 7
         4: .line 926
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 2 /* subclassIterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Subclass
            astore 3 /* subclass */
        start local 3 // org.hibernate.mapping.Subclass subclass
         5: .line 927
            aload 3 /* subclass */
            invokevirtual org.hibernate.mapping.Subclass.isCached:()Z
            ifeq 7
         6: .line 928
            iconst_1
            ireturn
        end local 3 // org.hibernate.mapping.Subclass subclass
         7: .line 925
      StackMap locals:
      StackMap stack:
            aload 2 /* subclassIterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         8: .line 931
            iconst_0
            ireturn
        end local 2 // java.util.Iterator subclassIterator
        end local 1 // org.hibernate.mapping.PersistentClass persistentClass
        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   persistentClass  Lorg/hibernate/mapping/PersistentClass;
            3    9     2  subclassIterator  Ljava/util/Iterator<Lorg/hibernate/mapping/Subclass;>;
            5    7     3          subclass  Lorg/hibernate/mapping/Subclass;
    MethodParameters:
                 Name  Flags
      persistentClass  

  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 935
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.cacheAccessStrategy:Lorg/hibernate/cache/spi/access/EntityDataAccess;
            ifnonnull 2
         1: .line 937
            getstatic org.hibernate.persister.entity.AbstractEntityPersister$NoopCacheEntryHelper.INSTANCE:Lorg/hibernate/persister/entity/AbstractEntityPersister$NoopCacheEntryHelper;
            areturn
         2: .line 940
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.canUseReferenceCacheEntries:()Z
            ifeq 5
         3: .line 941
            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 943
            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 946
      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.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isStructuredCacheEntriesEnabled:()Z
            ifeq 7
         6: .line 947
            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 948
      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 946
      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=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 952
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.useReferenceCacheEntries: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 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 956
            aload 0 /* string */
            ifnonnull 2
         1: .line 957
            aconst_null
            goto 3
         2: .line 958
      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 956
      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  

  protected java.util.Map<java.lang.String, java.lang.String> generateLazySelectStringsByFetchGroup();
    descriptor: ()Ljava/util/Map;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=19, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 962
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getBytecodeEnhancementMetadata:()Lorg/hibernate/bytecode/spi/BytecodeEnhancementMetadata;
            astore 1 /* enhancementMetadata */
        start local 1 // org.hibernate.bytecode.spi.BytecodeEnhancementMetadata enhancementMetadata
         1: .line 963
            aload 1 /* enhancementMetadata */
            invokeinterface org.hibernate.bytecode.spi.BytecodeEnhancementMetadata.isEnhancedForLazyLoading:()Z
            ifeq 3
         2: .line 964
            aload 1 /* enhancementMetadata */
            invokeinterface org.hibernate.bytecode.spi.BytecodeEnhancementMetadata.getLazyAttributesMetadata:()Lorg/hibernate/bytecode/enhance/spi/interceptor/LazyAttributesMetadata;
            invokevirtual org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributesMetadata.hasLazyAttributes:()Z
            ifne 4
         3: .line 965
      StackMap locals: org.hibernate.bytecode.spi.BytecodeEnhancementMetadata
      StackMap stack:
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
            areturn
         4: .line 968
      StackMap locals:
      StackMap stack:
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* result */
        start local 2 // java.util.Map result
         5: .line 970
            aload 1 /* enhancementMetadata */
            invokeinterface org.hibernate.bytecode.spi.BytecodeEnhancementMetadata.getLazyAttributesMetadata:()Lorg/hibernate/bytecode/enhance/spi/interceptor/LazyAttributesMetadata;
            astore 3 /* lazyAttributesMetadata */
        start local 3 // org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributesMetadata lazyAttributesMetadata
         6: .line 971
            aload 3 /* lazyAttributesMetadata */
            invokevirtual org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributesMetadata.getFetchGroupNames:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 41
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.bytecode.spi.BytecodeEnhancementMetadata java.util.Map org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributesMetadata top java.util.Iterator
      StackMap stack:
         7: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* groupName */
        start local 4 // java.lang.String groupName
         8: .line 972
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 6 /* tableNumbers */
        start local 6 // java.util.HashSet tableNumbers
         9: .line 973
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* columnNumbers */
        start local 7 // java.util.ArrayList columnNumbers
        10: .line 974
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 8 /* formulaNumbers */
        start local 8 // java.util.ArrayList formulaNumbers
        11: .line 977
            aload 3 /* lazyAttributesMetadata */
            aload 4 /* groupName */
            invokevirtual org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributesMetadata.getFetchGroupAttributeDescriptors:(Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 30
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.bytecode.spi.BytecodeEnhancementMetadata java.util.Map org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributesMetadata java.lang.String java.util.Iterator java.util.HashSet java.util.ArrayList java.util.ArrayList top java.util.Iterator
      StackMap stack:
        12: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor
            astore 9 /* lazyAttributeDescriptor */
        start local 9 // org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor lazyAttributeDescriptor
        13: .line 982
            aload 0 /* this */
            aload 9 /* lazyAttributeDescriptor */
            invokevirtual org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor.getName:()Ljava/lang/String;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyIndex:(Ljava/lang/String;)I
            istore 11 /* propertyNumber */
        start local 11 // int propertyNumber
        14: .line 984
            aload 0 /* this */
            iload 11 /* propertyNumber */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyTableNumber:(I)I
            istore 12 /* tableNumber */
        start local 12 // int tableNumber
        15: .line 985
            aload 6 /* tableNumbers */
            iload 12 /* tableNumber */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        16: .line 987
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNumberClosure:[[I
            iload 11 /* propertyNumber */
            aaload
            astore 13 /* colNumbers */
        start local 13 // int[] colNumbers
        17: .line 988
            aload 13 /* colNumbers */
            dup
            astore 17
            arraylength
            istore 16
            iconst_0
            istore 15
            goto 22
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.bytecode.spi.BytecodeEnhancementMetadata java.util.Map org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributesMetadata java.lang.String java.util.Iterator java.util.HashSet java.util.ArrayList java.util.ArrayList org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor java.util.Iterator int int int[] top int int int[]
      StackMap stack:
        18: aload 17
            iload 15
            iaload
            istore 14 /* colNumber */
        start local 14 // int colNumber
        19: .line 989
            iload 14 /* colNumber */
            iconst_m1
            if_icmpeq 21
        20: .line 990
            aload 7 /* columnNumbers */
            iload 14 /* colNumber */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 14 // int colNumber
        21: .line 988
      StackMap locals:
      StackMap stack:
            iinc 15 1
      StackMap locals:
      StackMap stack:
        22: iload 15
            iload 16
            if_icmplt 18
        23: .line 993
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyFormulaNumberClosure:[[I
            iload 11 /* propertyNumber */
            aaload
            astore 14 /* formNumbers */
        start local 14 // int[] formNumbers
        24: .line 994
            aload 14 /* formNumbers */
            dup
            astore 18
            arraylength
            istore 17
            iconst_0
            istore 16
            goto 29
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.bytecode.spi.BytecodeEnhancementMetadata java.util.Map org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributesMetadata java.lang.String java.util.Iterator java.util.HashSet java.util.ArrayList java.util.ArrayList org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor java.util.Iterator int int int[] int[] top int int int[]
      StackMap stack:
        25: aload 18
            iload 16
            iaload
            istore 15 /* formNumber */
        start local 15 // int formNumber
        26: .line 995
            iload 15 /* formNumber */
            iconst_m1
            if_icmpeq 28
        27: .line 996
            aload 8 /* formulaNumbers */
            iload 15 /* formNumber */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 15 // int formNumber
        28: .line 994
      StackMap locals:
      StackMap stack:
            iinc 16 1
      StackMap locals:
      StackMap stack:
        29: iload 16
            iload 17
            if_icmplt 25
        end local 14 // int[] formNumbers
        end local 13 // int[] colNumbers
        end local 12 // int tableNumber
        end local 11 // int propertyNumber
        end local 9 // org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor lazyAttributeDescriptor
        30: .line 976
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.bytecode.spi.BytecodeEnhancementMetadata java.util.Map org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributesMetadata java.lang.String java.util.Iterator java.util.HashSet java.util.ArrayList java.util.ArrayList top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        31: .line 1001
            aload 7 /* columnNumbers */
            invokevirtual java.util.ArrayList.size:()I
            ifne 33
            aload 8 /* formulaNumbers */
            invokevirtual java.util.ArrayList.size:()I
            ifne 33
        32: .line 1003
            goto 41
        33: .line 1006
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.bytecode.spi.BytecodeEnhancementMetadata java.util.Map org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributesMetadata java.lang.String java.util.Iterator java.util.HashSet java.util.ArrayList java.util.ArrayList
      StackMap stack:
            aload 2 /* result */
        34: .line 1007
            aload 4 /* groupName */
        35: .line 1008
            aload 0 /* this */
        36: .line 1009
            aload 6 /* tableNumbers */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toIntArray:(Ljava/util/Collection;)[I
        37: .line 1010
            aload 7 /* columnNumbers */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toIntArray:(Ljava/util/Collection;)[I
        38: .line 1011
            aload 8 /* formulaNumbers */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toIntArray:(Ljava/util/Collection;)[I
        39: .line 1008
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.renderSelect:([I[I[I)Ljava/lang/String;
        40: .line 1006
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // java.util.ArrayList formulaNumbers
        end local 7 // java.util.ArrayList columnNumbers
        end local 6 // java.util.HashSet tableNumbers
        end local 4 // java.lang.String groupName
        41: .line 971
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister org.hibernate.bytecode.spi.BytecodeEnhancementMetadata java.util.Map org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributesMetadata top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        42: .line 1016
            aload 2 /* result */
            areturn
        end local 3 // org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributesMetadata lazyAttributesMetadata
        end local 2 // java.util.Map result
        end local 1 // org.hibernate.bytecode.spi.BytecodeEnhancementMetadata enhancementMetadata
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   43     0                     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            1   43     1      enhancementMetadata  Lorg/hibernate/bytecode/spi/BytecodeEnhancementMetadata;
            5   43     2                   result  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            6   43     3   lazyAttributesMetadata  Lorg/hibernate/bytecode/enhance/spi/interceptor/LazyAttributesMetadata;
            8   41     4                groupName  Ljava/lang/String;
            9   41     6             tableNumbers  Ljava/util/HashSet;
           10   41     7            columnNumbers  Ljava/util/ArrayList;
           11   41     8           formulaNumbers  Ljava/util/ArrayList;
           13   30     9  lazyAttributeDescriptor  Lorg/hibernate/bytecode/enhance/spi/interceptor/LazyAttributeDescriptor;
           14   30    11           propertyNumber  I
           15   30    12              tableNumber  I
           17   30    13               colNumbers  [I
           19   21    14                colNumber  I
           24   30    14              formNumbers  [I
           26   28    15               formNumber  I
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  public java.lang.Object initializeLazyProperty(java.lang.String, java.lang.Object, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=12, 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.SharedSessionContractImplementor session
         0: .line 1020
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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 4 /* entry */
        start local 4 // org.hibernate.engine.spi.EntityEntry entry
         1: .line 1021
            aload 2 /* entity */
            checkcast org.hibernate.engine.spi.PersistentAttributeInterceptable
            invokeinterface org.hibernate.engine.spi.PersistentAttributeInterceptable.$$_hibernate_getInterceptor:()Lorg/hibernate/engine/spi/PersistentAttributeInterceptor;
            astore 5 /* interceptor */
        start local 5 // org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer$InterceptorImplementor interceptor
         2: .line 1022
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.$assertionsDisabled:Z
            ifne 3
            aload 5 /* interceptor */
            ifnonnull 3
            new java.lang.AssertionError
            dup
            ldc "Expecting bytecode interceptor to be non-null"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         3: .line 1024
      StackMap locals: org.hibernate.engine.spi.EntityEntry org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer$InterceptorImplementor
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasCollections:()Z
            ifeq 26
         4: .line 1025
            aload 0 /* this */
            aload 1 /* fieldName */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyType:(Ljava/lang/String;)Lorg/hibernate/type/Type;
            astore 6 /* type */
        start local 6 // org.hibernate.type.Type type
         5: .line 1026
            aload 6 /* type */
            invokeinterface org.hibernate.type.Type.isCollectionType:()Z
            ifeq 26
         6: .line 1029
            aload 6 /* type */
            checkcast org.hibernate.type.CollectionType
            astore 7 /* collectionType */
        start local 7 // org.hibernate.type.CollectionType collectionType
         7: .line 1030
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 7 /* collectionType */
            invokevirtual org.hibernate.type.CollectionType.getRole:()Ljava/lang/String;
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.collectionPersister:(Ljava/lang/String;)Lorg/hibernate/persister/collection/CollectionPersister;
            astore 8 /* persister */
        start local 8 // org.hibernate.persister.collection.CollectionPersister persister
         8: .line 1040
            aload 0 /* this */
            aload 8 /* persister */
            aload 2 /* entity */
            aload 4 /* entry */
            aload 3 /* session */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getCollectionKey:(Lorg/hibernate/persister/collection/CollectionPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/EntityEntry;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/io/Serializable;
            astore 9 /* key */
        start local 9 // java.io.Serializable key
         9: .line 1041
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getPersistenceContext:()Lorg/hibernate/engine/spi/PersistenceContext;
            new org.hibernate.engine.spi.CollectionKey
            dup
            aload 8 /* persister */
            aload 9 /* key */
            invokespecial org.hibernate.engine.spi.CollectionKey.<init>:(Lorg/hibernate/persister/collection/CollectionPersister;Ljava/io/Serializable;)V
            invokeinterface org.hibernate.engine.spi.PersistenceContext.getCollection:(Lorg/hibernate/engine/spi/CollectionKey;)Lorg/hibernate/collection/spi/PersistentCollection;
            astore 10 /* collection */
        start local 10 // org.hibernate.collection.spi.PersistentCollection collection
        10: .line 1042
            aload 10 /* collection */
            ifnonnull 14
        11: .line 1043
            aload 7 /* collectionType */
            aload 3 /* session */
            aload 8 /* persister */
            aload 9 /* key */
            invokevirtual org.hibernate.type.CollectionType.instantiate:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/persister/collection/CollectionPersister;Ljava/io/Serializable;)Lorg/hibernate/collection/spi/PersistentCollection;
            astore 10 /* collection */
        12: .line 1044
            aload 10 /* collection */
            aload 2 /* entity */
            invokeinterface org.hibernate.collection.spi.PersistentCollection.setOwner:(Ljava/lang/Object;)V
        13: .line 1045
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getPersistenceContext:()Lorg/hibernate/engine/spi/PersistenceContext;
            aload 8 /* persister */
            aload 10 /* collection */
            aload 9 /* key */
            invokeinterface org.hibernate.engine.spi.PersistenceContext.addUninitializedCollection:(Lorg/hibernate/persister/collection/CollectionPersister;Lorg/hibernate/collection/spi/PersistentCollection;Ljava/io/Serializable;)V
        14: .line 1049
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.Object org.hibernate.engine.spi.SharedSessionContractImplementor org.hibernate.engine.spi.EntityEntry org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer$InterceptorImplementor org.hibernate.type.Type org.hibernate.type.CollectionType org.hibernate.persister.collection.CollectionPersister java.io.Serializable org.hibernate.collection.spi.PersistentCollection
      StackMap stack:
            aload 8 /* persister */
            invokeinterface org.hibernate.persister.collection.CollectionPersister.isExtraLazy:()Z
            ifne 16
        15: .line 1050
            aload 3 /* session */
            aload 10 /* collection */
            iconst_0
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.initializeCollection:(Lorg/hibernate/collection/spi/PersistentCollection;Z)V
        16: .line 1052
      StackMap locals:
      StackMap stack:
            aload 5 /* interceptor */
            aload 1 /* fieldName */
            invokeinterface org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer$InterceptorImplementor.attributeInitialized:(Ljava/lang/String;)V
        17: .line 1054
            aload 7 /* collectionType */
            invokevirtual org.hibernate.type.CollectionType.isArrayType:()Z
            ifeq 19
        18: .line 1055
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getPersistenceContext:()Lorg/hibernate/engine/spi/PersistenceContext;
            aload 10 /* collection */
            invokeinterface org.hibernate.engine.spi.PersistenceContext.addCollectionHolder:(Lorg/hibernate/collection/spi/PersistentCollection;)V
        19: .line 1060
      StackMap locals:
      StackMap stack:
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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 11 /* ownerEntry */
        start local 11 // org.hibernate.engine.spi.EntityEntry ownerEntry
        20: .line 1061
            aload 11 /* ownerEntry */
            ifnonnull 24
        21: .line 1063
            new org.hibernate.AssertionFailure
            dup
        22: .line 1064
            ldc "Could not locate EntityEntry for the collection owner in the PersistenceContext"
        23: .line 1063
            invokespecial org.hibernate.AssertionFailure.<init>:(Ljava/lang/String;)V
            athrow
        24: .line 1067
      StackMap locals: org.hibernate.engine.spi.EntityEntry
      StackMap stack:
            aload 11 /* ownerEntry */
            aload 1 /* fieldName */
            aload 10 /* collection */
            invokeinterface org.hibernate.engine.spi.EntityEntry.overwriteLoadedStateCollectionValue:(Ljava/lang/String;Lorg/hibernate/collection/spi/PersistentCollection;)V
        25: .line 1070
            aload 10 /* collection */
            areturn
        end local 11 // org.hibernate.engine.spi.EntityEntry ownerEntry
        end local 10 // org.hibernate.collection.spi.PersistentCollection collection
        end local 9 // java.io.Serializable key
        end local 8 // org.hibernate.persister.collection.CollectionPersister persister
        end local 7 // org.hibernate.type.CollectionType collectionType
        end local 6 // org.hibernate.type.Type type
        26: .line 1074
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.Object org.hibernate.engine.spi.SharedSessionContractImplementor org.hibernate.engine.spi.EntityEntry org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer$InterceptorImplementor
      StackMap stack:
            aload 3 /* session */
            aload 2 /* entity */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getContextEntityIdentifier:(Ljava/lang/Object;)Ljava/io/Serializable;
            astore 6 /* id */
        start local 6 // java.io.Serializable id
        27: .line 1075
            aload 4 /* entry */
            ifnonnull 29
        28: .line 1076
            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 6 /* 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
        29: .line 1079
      StackMap locals: java.io.Serializable
      StackMap stack:
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 38
        30: .line 1080
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
        31: .line 1081
            ldc "Initializing lazy properties of: {0}, field access: {1}"
        32: .line 1082
            aload 0 /* this */
        33: .line 1083
            aload 6 /* id */
        34: .line 1084
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
        35: .line 1081
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
        36: .line 1085
            aload 1 /* fieldName */
        37: .line 1080
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracev:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        38: .line 1089
      StackMap locals:
      StackMap stack:
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getCacheMode:()Lorg/hibernate/CacheMode;
            invokevirtual org.hibernate.CacheMode.isGetEnabled:()Z
            ifeq 47
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.canReadFromCache:()Z
            ifeq 47
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isLazyPropertiesCacheable:()Z
            ifeq 47
        39: .line 1090
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getCacheAccessStrategy:()Lorg/hibernate/cache/spi/access/EntityDataAccess;
            astore 7 /* cacheAccess */
        start local 7 // org.hibernate.cache.spi.access.EntityDataAccess cacheAccess
        40: .line 1091
            aload 7 /* cacheAccess */
            aload 6 /* id */
            aload 0 /* this */
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getTenantIdentifier:()Ljava/lang/String;
            invokeinterface org.hibernate.cache.spi.access.EntityDataAccess.generateCacheKey:(Ljava/lang/Object;Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Ljava/lang/String;)Ljava/lang/Object;
            astore 8 /* cacheKey */
        start local 8 // java.lang.Object cacheKey
        41: .line 1092
            aload 3 /* session */
            aload 8 /* cacheKey */
            aload 7 /* cacheAccess */
            invokestatic org.hibernate.engine.internal.CacheHelper.fromSharedCache:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;Lorg/hibernate/cache/spi/access/CachedDomainDataAccess;)Ljava/io/Serializable;
            astore 9 /* ce */
        start local 9 // java.lang.Object ce
        42: .line 1093
            aload 9 /* ce */
            ifnull 47
        43: .line 1094
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getCacheEntryStructure:()Lorg/hibernate/cache/spi/entry/CacheEntryStructure;
            aload 9 /* 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 10 /* cacheEntry */
        start local 10 // org.hibernate.cache.spi.entry.CacheEntry cacheEntry
        44: .line 1095
            aload 0 /* this */
            aload 1 /* fieldName */
            aload 2 /* entity */
            aload 3 /* session */
            aload 4 /* entry */
            aload 10 /* cacheEntry */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.initializeLazyPropertiesFromCache:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/engine/spi/EntityEntry;Lorg/hibernate/cache/spi/entry/CacheEntry;)Ljava/lang/Object;
            astore 11 /* initializedValue */
        start local 11 // java.lang.Object initializedValue
        45: .line 1096
            aload 11 /* initializedValue */
            getstatic org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer.UNFETCHED_PROPERTY:Ljava/io/Serializable;
            if_acmpeq 47
        46: .line 1101
            aload 11 /* initializedValue */
            areturn
        end local 11 // java.lang.Object initializedValue
        end local 10 // org.hibernate.cache.spi.entry.CacheEntry cacheEntry
        end local 9 // java.lang.Object ce
        end local 8 // java.lang.Object cacheKey
        end local 7 // org.hibernate.cache.spi.access.EntityDataAccess cacheAccess
        47: .line 1106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* fieldName */
            aload 2 /* entity */
            aload 3 /* session */
            aload 6 /* id */
            aload 4 /* entry */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.initializeLazyPropertiesFromDatastore:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/io/Serializable;Lorg/hibernate/engine/spi/EntityEntry;)Ljava/lang/Object;
            areturn
        end local 6 // java.io.Serializable id
        end local 5 // org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer$InterceptorImplementor interceptor
        end local 4 // org.hibernate.engine.spi.EntityEntry entry
        end local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
            1   48     4             entry  Lorg/hibernate/engine/spi/EntityEntry;
            2   48     5       interceptor  Lorg/hibernate/bytecode/enhance/spi/LazyPropertyInitializer$InterceptorImplementor;
            5   26     6              type  Lorg/hibernate/type/Type;
            7   26     7    collectionType  Lorg/hibernate/type/CollectionType;
            8   26     8         persister  Lorg/hibernate/persister/collection/CollectionPersister;
            9   26     9               key  Ljava/io/Serializable;
           10   26    10        collection  Lorg/hibernate/collection/spi/PersistentCollection;
           20   26    11        ownerEntry  Lorg/hibernate/engine/spi/EntityEntry;
           27   48     6                id  Ljava/io/Serializable;
           40   47     7       cacheAccess  Lorg/hibernate/cache/spi/access/EntityDataAccess;
           41   47     8          cacheKey  Ljava/lang/Object;
           42   47     9                ce  Ljava/lang/Object;
           44   47    10        cacheEntry  Lorg/hibernate/cache/spi/entry/CacheEntry;
           45   47    11  initializedValue  Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      fieldName  
      entity     
      session    

  protected java.io.Serializable getCollectionKey(org.hibernate.persister.collection.CollectionPersister, java.lang.Object, org.hibernate.engine.spi.EntityEntry, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Lorg/hibernate/persister/collection/CollectionPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/EntityEntry;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/io/Serializable;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=6, args_size=5
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.persister.collection.CollectionPersister persister
        start local 2 // java.lang.Object owner
        start local 3 // org.hibernate.engine.spi.EntityEntry ownerEntry
        start local 4 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 1115
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.collection.CollectionPersister.getCollectionType:()Lorg/hibernate/type/CollectionType;
            astore 5 /* collectionType */
        start local 5 // org.hibernate.type.CollectionType collectionType
         1: .line 1117
            aload 3 /* ownerEntry */
            ifnull 3
         2: .line 1119
            aload 5 /* collectionType */
            aload 2 /* owner */
            aload 4 /* session */
            invokevirtual org.hibernate.type.CollectionType.getKeyOfOwner:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/io/Serializable;
            areturn
         3: .line 1122
      StackMap locals: org.hibernate.type.CollectionType
      StackMap stack:
            aload 5 /* collectionType */
            invokevirtual org.hibernate.type.CollectionType.getLHSPropertyName:()Ljava/lang/String;
            ifnonnull 5
         4: .line 1124
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.collection.CollectionPersister.getOwnerEntityPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            aload 2 /* owner */
            aload 4 /* session */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getIdentifier:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/io/Serializable;
            areturn
         5: .line 1127
      StackMap locals:
      StackMap stack:
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.collection.CollectionPersister.getOwnerEntityPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            aload 2 /* owner */
            aload 5 /* collectionType */
            invokevirtual org.hibernate.type.CollectionType.getLHSPropertyName:()Ljava/lang/String;
            invokeinterface org.hibernate.persister.entity.EntityPersister.getPropertyValue:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.io.Serializable
            areturn
        end local 5 // org.hibernate.type.CollectionType collectionType
        end local 4 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 3 // org.hibernate.engine.spi.EntityEntry ownerEntry
        end local 2 // java.lang.Object owner
        end local 1 // org.hibernate.persister.collection.CollectionPersister persister
        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       persister  Lorg/hibernate/persister/collection/CollectionPersister;
            0    6     2           owner  Ljava/lang/Object;
            0    6     3      ownerEntry  Lorg/hibernate/engine/spi/EntityEntry;
            0    6     4         session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            1    6     5  collectionType  Lorg/hibernate/type/CollectionType;
    MethodParameters:
            Name  Flags
      persister   
      owner       
      ownerEntry  
      session     

  private java.lang.Object initializeLazyPropertiesFromDatastore(java.lang.String, java.lang.Object, org.hibernate.engine.spi.SharedSessionContractImplementor, java.io.Serializable, org.hibernate.engine.spi.EntityEntry);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/io/Serializable;Lorg/hibernate/engine/spi/EntityEntry;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=22, 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.SharedSessionContractImplementor session
        start local 4 // java.io.Serializable id
        start local 5 // org.hibernate.engine.spi.EntityEntry entry
         0: .line 1138
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasLazyProperties:()Z
            ifne 2
         1: .line 1139
            new org.hibernate.AssertionFailure
            dup
            ldc "no lazy properties"
            invokespecial org.hibernate.AssertionFailure.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1142
      StackMap locals:
      StackMap stack:
            aload 2 /* entity */
            checkcast org.hibernate.engine.spi.PersistentAttributeInterceptable
            invokeinterface org.hibernate.engine.spi.PersistentAttributeInterceptable.$$_hibernate_getInterceptor:()Lorg/hibernate/engine/spi/PersistentAttributeInterceptor;
            astore 6 /* interceptor */
        start local 6 // org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer$InterceptorImplementor interceptor
         3: .line 1143
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.$assertionsDisabled:Z
            ifne 4
            aload 6 /* interceptor */
            ifnonnull 4
            new java.lang.AssertionError
            dup
            ldc "Expecting bytecode interceptor to be non-null"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         4: .line 1145
      StackMap locals: org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer$InterceptorImplementor
      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
         5: .line 1147
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityMetamodel:()Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getBytecodeEnhancementMetadata:()Lorg/hibernate/bytecode/spi/BytecodeEnhancementMetadata;
         6: .line 1148
            invokeinterface org.hibernate.bytecode.spi.BytecodeEnhancementMetadata.getLazyAttributesMetadata:()Lorg/hibernate/bytecode/enhance/spi/interceptor/LazyAttributesMetadata;
         7: .line 1149
            aload 1 /* fieldName */
            invokevirtual org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributesMetadata.getFetchGroupName:(Ljava/lang/String;)Ljava/lang/String;
         8: .line 1147
            astore 7 /* fetchGroup */
        start local 7 // java.lang.String fetchGroup
         9: .line 1150
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityMetamodel:()Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getBytecodeEnhancementMetadata:()Lorg/hibernate/bytecode/spi/BytecodeEnhancementMetadata;
        10: .line 1151
            invokeinterface org.hibernate.bytecode.spi.BytecodeEnhancementMetadata.getLazyAttributesMetadata:()Lorg/hibernate/bytecode/enhance/spi/interceptor/LazyAttributesMetadata;
        11: .line 1152
            aload 7 /* fetchGroup */
            invokevirtual org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributesMetadata.getFetchGroupAttributeDescriptors:(Ljava/lang/String;)Ljava/util/List;
        12: .line 1150
            astore 8 /* fetchGroupAttributeDescriptors */
        start local 8 // java.util.List fetchGroupAttributeDescriptors
        13: .line 1154
            aload 6 /* interceptor */
            invokeinterface org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer$InterceptorImplementor.getInitializedLazyAttributeNames:()Ljava/util/Set;
            astore 9 /* initializedLazyAttributeNames */
        start local 9 // java.util.Set initializedLazyAttributeNames
        14: .line 1156
            aload 0 /* this */
            aload 7 /* fetchGroup */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSQLLazySelectString:(Ljava/lang/String;)Ljava/lang/String;
            astore 10 /* lazySelect */
        start local 10 // java.lang.String lazySelect
        15: .line 1159
            aconst_null
            astore 11 /* result */
        start local 11 // java.lang.Object result
        16: .line 1160
            aconst_null
            astore 12 /* ps */
        start local 12 // java.sql.PreparedStatement ps
        17: .line 1162
            aconst_null
            astore 13 /* rs */
        start local 13 // java.sql.ResultSet rs
        18: .line 1164
            aload 10 /* lazySelect */
            ifnull 26
        19: .line 1168
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        20: .line 1169
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
        21: .line 1170
            aload 10 /* lazySelect */
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
        22: .line 1168
            astore 12 /* ps */
        23: .line 1171
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
            aload 12 /* 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/SharedSessionContractImplementor;)V
        24: .line 1172
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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 */
        25: .line 1173
            aload 13 /* rs */
            invokeinterface java.sql.ResultSet.next:()Z
            pop
        26: .line 1175
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.Object org.hibernate.engine.spi.SharedSessionContractImplementor java.io.Serializable org.hibernate.engine.spi.EntityEntry org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer$InterceptorImplementor java.lang.String java.util.List java.util.Set java.lang.String java.lang.Object java.sql.PreparedStatement java.sql.ResultSet
      StackMap stack:
            aload 5 /* entry */
            invokeinterface org.hibernate.engine.spi.EntityEntry.getLoadedState:()[Ljava/lang/Object;
            astore 14 /* snapshot */
        start local 14 // java.lang.Object[] snapshot
        27: .line 1176
            aload 8 /* fetchGroupAttributeDescriptors */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 16
            goto 49
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.Object org.hibernate.engine.spi.SharedSessionContractImplementor java.io.Serializable org.hibernate.engine.spi.EntityEntry org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer$InterceptorImplementor java.lang.String java.util.List java.util.Set java.lang.String java.lang.Object java.sql.PreparedStatement java.sql.ResultSet java.lang.Object[] top java.util.Iterator
      StackMap stack:
        28: aload 16
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor
            astore 15 /* fetchGroupAttributeDescriptor */
        start local 15 // org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor fetchGroupAttributeDescriptor
        29: .line 1177
            aload 9 /* initializedLazyAttributeNames */
            aload 15 /* fetchGroupAttributeDescriptor */
            invokevirtual org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor.getName:()Ljava/lang/String;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            istore 17 /* previousInitialized */
        start local 17 // boolean previousInitialized
        30: .line 1179
            iload 17 /* previousInitialized */
            ifeq 32
        31: .line 1191
            goto 49
        32: .line 1195
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.Object org.hibernate.engine.spi.SharedSessionContractImplementor java.io.Serializable org.hibernate.engine.spi.EntityEntry org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer$InterceptorImplementor java.lang.String java.util.List java.util.Set java.lang.String java.lang.Object java.sql.PreparedStatement java.sql.ResultSet java.lang.Object[] org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor java.util.Iterator int
      StackMap stack:
            aload 15 /* fetchGroupAttributeDescriptor */
            invokevirtual org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor.getType:()Lorg/hibernate/type/Type;
        33: .line 1196
            aload 13 /* rs */
        34: .line 1197
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lazyPropertyColumnAliases:[[Ljava/lang/String;
            aload 15 /* fetchGroupAttributeDescriptor */
            invokevirtual org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor.getLazyIndex:()I
            aaload
        35: .line 1198
            aload 3 /* session */
        36: .line 1199
            aload 2 /* entity */
        37: .line 1195
            invokeinterface org.hibernate.type.Type.nullSafeGet:(Ljava/sql/ResultSet;[Ljava/lang/String;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            astore 18 /* selectedValue */
        start local 18 // java.lang.Object selectedValue
        38: .line 1202
            aload 0 /* this */
        39: .line 1203
            aload 1 /* fieldName */
        40: .line 1204
            aload 2 /* entity */
        41: .line 1205
            aload 3 /* session */
        42: .line 1206
            aload 14 /* snapshot */
        43: .line 1207
            aload 15 /* fetchGroupAttributeDescriptor */
            invokevirtual org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor.getLazyIndex:()I
        44: .line 1208
            aload 18 /* selectedValue */
        45: .line 1202
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.initializeLazyProperty:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;[Ljava/lang/Object;ILjava/lang/Object;)Z
            istore 19 /* set */
        start local 19 // boolean set
        46: .line 1210
            iload 19 /* set */
            ifeq 49
        47: .line 1211
            aload 18 /* selectedValue */
            astore 11 /* result */
        48: .line 1212
            aload 6 /* interceptor */
            aload 15 /* fetchGroupAttributeDescriptor */
            invokevirtual org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor.getName:()Ljava/lang/String;
            invokeinterface org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer$InterceptorImplementor.attributeInitialized:(Ljava/lang/String;)V
        end local 19 // boolean set
        end local 18 // java.lang.Object selectedValue
        end local 17 // boolean previousInitialized
        end local 15 // org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor fetchGroupAttributeDescriptor
        49: .line 1176
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.Object org.hibernate.engine.spi.SharedSessionContractImplementor java.io.Serializable org.hibernate.engine.spi.EntityEntry org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer$InterceptorImplementor java.lang.String java.util.List java.util.Set java.lang.String java.lang.Object java.sql.PreparedStatement java.sql.ResultSet java.lang.Object[] top java.util.Iterator
      StackMap stack:
            aload 16
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 28
        end local 14 // java.lang.Object[] snapshot
        50: .line 1216
            goto 55
        51: .line 1217
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.Object org.hibernate.engine.spi.SharedSessionContractImplementor java.io.Serializable org.hibernate.engine.spi.EntityEntry org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer$InterceptorImplementor java.lang.String java.util.List java.util.Set java.lang.String java.lang.Object java.sql.PreparedStatement java.sql.ResultSet
      StackMap stack: java.lang.Throwable
            astore 20
        52: .line 1218
            aload 13 /* rs */
            ifnull 54
        53: .line 1219
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 13 /* rs */
            aload 12 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        54: .line 1221
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.Object org.hibernate.engine.spi.SharedSessionContractImplementor java.io.Serializable org.hibernate.engine.spi.EntityEntry org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer$InterceptorImplementor java.lang.String java.util.List java.util.Set java.lang.String java.lang.Object java.sql.PreparedStatement java.sql.ResultSet top top top top top top java.lang.Throwable
      StackMap stack:
            aload 20
            athrow
        55: .line 1218
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.Object org.hibernate.engine.spi.SharedSessionContractImplementor java.io.Serializable org.hibernate.engine.spi.EntityEntry org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer$InterceptorImplementor java.lang.String java.util.List java.util.Set java.lang.String java.lang.Object java.sql.PreparedStatement java.sql.ResultSet
      StackMap stack:
            aload 13 /* rs */
            ifnull 63
        56: .line 1219
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 13 /* rs */
            aload 12 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        end local 13 // java.sql.ResultSet rs
        57: .line 1222
            goto 63
        58: .line 1223
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.Object org.hibernate.engine.spi.SharedSessionContractImplementor java.io.Serializable org.hibernate.engine.spi.EntityEntry org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer$InterceptorImplementor java.lang.String java.util.List java.util.Set java.lang.String java.lang.Object java.sql.PreparedStatement
      StackMap stack: java.lang.Throwable
            astore 21
        59: .line 1224
            aload 12 /* ps */
            ifnull 62
        60: .line 1225
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 12 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        61: .line 1226
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        62: .line 1228
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.Object org.hibernate.engine.spi.SharedSessionContractImplementor java.io.Serializable org.hibernate.engine.spi.EntityEntry org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer$InterceptorImplementor java.lang.String java.util.List java.util.Set java.lang.String java.lang.Object java.sql.PreparedStatement top top top top top top top top java.lang.Throwable
      StackMap stack:
            aload 21
            athrow
        63: .line 1224
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.Object org.hibernate.engine.spi.SharedSessionContractImplementor java.io.Serializable org.hibernate.engine.spi.EntityEntry org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer$InterceptorImplementor java.lang.String java.util.List java.util.Set java.lang.String java.lang.Object java.sql.PreparedStatement
      StackMap stack:
            aload 12 /* ps */
            ifnull 66
        64: .line 1225
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 12 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        65: .line 1226
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        66: .line 1230
      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
        67: .line 1232
            aload 11 /* result */
        68: areturn
        end local 12 // java.sql.PreparedStatement ps
        end local 11 // java.lang.Object result
        69: .line 1235
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.Object org.hibernate.engine.spi.SharedSessionContractImplementor java.io.Serializable org.hibernate.engine.spi.EntityEntry org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer$InterceptorImplementor java.lang.String java.util.List java.util.Set java.lang.String
      StackMap stack: java.sql.SQLException
            astore 11 /* sqle */
        start local 11 // java.sql.SQLException sqle
        70: .line 1236
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcServices:()Lorg/hibernate/engine/jdbc/spi/JdbcServices;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcServices.getSqlExceptionHelper:()Lorg/hibernate/engine/jdbc/spi/SqlExceptionHelper;
        71: .line 1237
            aload 11 /* sqle */
        72: .line 1238
            new java.lang.StringBuilder
            dup
            ldc "could not initialize lazy properties: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        73: .line 1239
            aload 10 /* lazySelect */
        74: .line 1236
            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 sqle
        end local 10 // java.lang.String lazySelect
        end local 9 // java.util.Set initializedLazyAttributeNames
        end local 8 // java.util.List fetchGroupAttributeDescriptors
        end local 7 // java.lang.String fetchGroup
        end local 6 // org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer$InterceptorImplementor interceptor
        end local 5 // org.hibernate.engine.spi.EntityEntry entry
        end local 4 // java.io.Serializable id
        end local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor 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   75     0                            this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   75     1                       fieldName  Ljava/lang/String;
            0   75     2                          entity  Ljava/lang/Object;
            0   75     3                         session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            0   75     4                              id  Ljava/io/Serializable;
            0   75     5                           entry  Lorg/hibernate/engine/spi/EntityEntry;
            3   75     6                     interceptor  Lorg/hibernate/bytecode/enhance/spi/LazyPropertyInitializer$InterceptorImplementor;
            9   75     7                      fetchGroup  Ljava/lang/String;
           13   75     8  fetchGroupAttributeDescriptors  Ljava/util/List<Lorg/hibernate/bytecode/enhance/spi/interceptor/LazyAttributeDescriptor;>;
           14   75     9   initializedLazyAttributeNames  Ljava/util/Set<Ljava/lang/String;>;
           15   75    10                      lazySelect  Ljava/lang/String;
           16   69    11                          result  Ljava/lang/Object;
           17   69    12                              ps  Ljava/sql/PreparedStatement;
           18   57    13                              rs  Ljava/sql/ResultSet;
           27   50    14                        snapshot  [Ljava/lang/Object;
           29   49    15   fetchGroupAttributeDescriptor  Lorg/hibernate/bytecode/enhance/spi/interceptor/LazyAttributeDescriptor;
           30   49    17             previousInitialized  Z
           38   49    18                   selectedValue  Ljava/lang/Object;
           46   49    19                             set  Z
           70   75    11                            sqle  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          18    51      51  any
          17    58      58  any
          15    68      69  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.SharedSessionContractImplementor, org.hibernate.engine.spi.EntityEntry, org.hibernate.cache.spi.entry.CacheEntry);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/engine/spi/EntityEntry;Lorg/hibernate/cache/spi/entry/CacheEntry;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=14, 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.SharedSessionContractImplementor session
        start local 4 // org.hibernate.engine.spi.EntityEntry entry
        start local 5 // org.hibernate.cache.spi.entry.CacheEntry cacheEntry
         0: .line 1251
            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 1253
            aconst_null
            astore 6 /* result */
        start local 6 // java.lang.Object result
         2: .line 1254
            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 1255
            aload 4 /* entry */
            invokeinterface org.hibernate.engine.spi.EntityEntry.getLoadedState:()[Ljava/lang/Object;
            astore 8 /* snapshot */
        start local 8 // java.lang.Object[] snapshot
         4: .line 1256
            iconst_0
            istore 9 /* j */
        start local 9 // int j
         5: goto 21
         6: .line 1257
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.Object org.hibernate.engine.spi.SharedSessionContractImplementor org.hibernate.engine.spi.EntityEntry org.hibernate.cache.spi.entry.CacheEntry java.lang.Object java.io.Serializable[] java.lang.Object[] int
      StackMap stack:
            aload 7 /* disassembledValues */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lazyPropertyNumbers:[I
            iload 9 /* j */
            iaload
            aaload
            astore 10 /* cachedValue */
        start local 10 // java.io.Serializable cachedValue
         7: .line 1258
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lazyPropertyTypes:[Lorg/hibernate/type/Type;
            iload 9 /* j */
            aaload
            astore 11 /* lazyPropertyType */
        start local 11 // org.hibernate.type.Type lazyPropertyType
         8: .line 1259
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lazyPropertyNames:[Ljava/lang/String;
            iload 9 /* j */
            aaload
            astore 12 /* propertyName */
        start local 12 // java.lang.String propertyName
         9: .line 1260
            aload 10 /* cachedValue */
            getstatic org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer.UNFETCHED_PROPERTY:Ljava/io/Serializable;
            if_acmpne 13
        10: .line 1261
            aload 1 /* fieldName */
            aload 12 /* propertyName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
        11: .line 1262
            getstatic org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer.UNFETCHED_PROPERTY:Ljava/io/Serializable;
            astore 6 /* result */
        12: .line 1265
            goto 20
        13: .line 1267
      StackMap locals: java.io.Serializable org.hibernate.type.Type java.lang.String
      StackMap stack:
            aload 11 /* lazyPropertyType */
        14: .line 1268
            aload 10 /* cachedValue */
        15: .line 1269
            aload 3 /* session */
        16: .line 1270
            aload 2 /* entity */
        17: .line 1267
            invokeinterface org.hibernate.type.Type.assemble:(Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            astore 13 /* propValue */
        start local 13 // java.lang.Object propValue
        18: .line 1272
            aload 0 /* this */
            aload 1 /* fieldName */
            aload 2 /* entity */
            aload 3 /* session */
            aload 8 /* snapshot */
            iload 9 /* j */
            aload 13 /* propValue */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.initializeLazyProperty:(Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;[Ljava/lang/Object;ILjava/lang/Object;)Z
            ifeq 20
        19: .line 1273
            aload 13 /* propValue */
            astore 6 /* result */
        end local 13 // java.lang.Object propValue
        end local 12 // java.lang.String propertyName
        end local 11 // org.hibernate.type.Type lazyPropertyType
        end local 10 // java.io.Serializable cachedValue
        20: .line 1256
      StackMap locals:
      StackMap stack:
            iinc 9 /* j */ 1
      StackMap locals:
      StackMap stack:
        21: 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
        22: .line 1278
            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
        23: .line 1280
            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.SharedSessionContractImplementor 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   24     0                this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   24     1           fieldName  Ljava/lang/String;
            0   24     2              entity  Ljava/lang/Object;
            0   24     3             session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            0   24     4               entry  Lorg/hibernate/engine/spi/EntityEntry;
            0   24     5          cacheEntry  Lorg/hibernate/cache/spi/entry/CacheEntry;
            2   24     6              result  Ljava/lang/Object;
            3   24     7  disassembledValues  [Ljava/io/Serializable;
            4   24     8            snapshot  [Ljava/lang/Object;
            5   22     9                   j  I
            7   20    10         cachedValue  Ljava/io/Serializable;
            8   20    11    lazyPropertyType  Lorg/hibernate/type/Type;
            9   20    12        propertyName  Ljava/lang/String;
           18   20    13           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.SharedSessionContractImplementor, java.lang.Object[], int, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;[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.SharedSessionContractImplementor session
        start local 4 // java.lang.Object[] snapshot
        start local 5 // int j
        start local 6 // java.lang.Object propValue
         0: .line 1290
            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 1291
            aload 4 /* snapshot */
            ifnull 3
         2: .line 1293
            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 1295
      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.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
            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 1299
            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 1300
            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 1301
      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.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isJdbcBatchVersionedData:()Z
            ifne 4
         3: .line 1299
            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 org.hibernate.metamodel.model.domain.NavigableRole getNavigableRole();
    descriptor: ()Lorg/hibernate/metamodel/model/domain/NavigableRole;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 1306
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.navigableRole:Lorg/hibernate/metamodel/model/domain/NavigableRole;
            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.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 1310
            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;

  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 1314
            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 1318
            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 1322
            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 1326
            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 1330
            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 1334
            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 1338
            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 1342
            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 1346
            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 1350
            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=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 1363
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.invalidateCache: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 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 1367
            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 1371
            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 1372
            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 1371
            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 1379
            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 1384
            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 1391
            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 1392
            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 1393
      StackMap locals:
      StackMap stack:
            aconst_null
         3: .line 1391
      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 1397
            new org.hibernate.sql.SelectFragment
            dup
            invokespecial org.hibernate.sql.SelectFragment.<init>:()V
         1: .line 1398
            aload 2 /* suffix */
            invokevirtual org.hibernate.sql.SelectFragment.setSuffix:(Ljava/lang/String;)Lorg/hibernate/sql/SelectFragment;
         2: .line 1399
            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 1400
            invokevirtual org.hibernate.sql.SelectFragment.toFragmentString:()Ljava/lang/String;
         4: .line 1401
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
         5: .line 1397
            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 1406
            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 1413
            new org.hibernate.sql.SelectFragment
            dup
            invokespecial org.hibernate.sql.SelectFragment.<init>:()V
         1: .line 1414
            aload 2 /* suffix */
            invokevirtual org.hibernate.sql.SelectFragment.setSuffix:(Ljava/lang/String;)Lorg/hibernate/sql/SelectFragment;
         2: .line 1415
            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 1413
            astore 4 /* select */
        start local 4 // org.hibernate.sql.SelectFragment select
         4: .line 1417
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassColumnTableNumberClosure:()[I
            astore 5 /* columnTableNumbers */
        start local 5 // int[] columnTableNumbers
         5: .line 1418
            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 1419
            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 1420
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         8: goto 19
         9: .line 1421
      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 1422
      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 1423
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassColumnSelectableClosure:[Z
            iload 8 /* i */
            baload
            ifeq 13
        12: .line 1421
            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 1424
            iload 9 /* selectable */
            ifeq 18
        16: .line 1425
            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 1426
            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 1420
      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 1430
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassFormulaTableNumberClosure:()[I
            astore 8 /* formulaTableNumbers */
        start local 8 // int[] formulaTableNumbers
        21: .line 1431
            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 1432
            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 1433
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        24: goto 34
        25: .line 1434
      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 1435
      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 1434
            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 1436
            iload 12 /* selectable */
            ifeq 33
        31: .line 1437
            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 1438
            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 1433
      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 1442
            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 1443
            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 1446
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasRowId:()Z
            ifeq 39
        38: .line 1447
            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 1450
      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.SharedSessionContractImplementor);
    descriptor: (Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)[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.SharedSessionContractImplementor session
         0: .line 1456
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 8
         1: .line 1457
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         2: .line 1458
            ldc "Getting current persistent state for: {0}"
         3: .line 1459
            aload 0 /* this */
         4: .line 1460
            aload 1 /* id */
         5: .line 1461
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
         6: .line 1458
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
         7: .line 1457
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracev:(Ljava/lang/String;Ljava/lang/Object;)V
         8: .line 1467
      StackMap locals:
      StackMap stack:
            aload 2 /* session */
         9: .line 1468
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        10: .line 1469
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
        11: .line 1470
            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;
        12: .line 1467
            astore 3 /* ps */
        start local 3 // java.sql.PreparedStatement ps
        13: .line 1472
            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/SharedSessionContractImplementor;)V
        14: .line 1474
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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
        15: .line 1477
            aload 4 /* rs */
            invokeinterface java.sql.ResultSet.next:()Z
            ifne 20
        16: .line 1497
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 4 /* rs */
            aload 3 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        17: .line 1501
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 3 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        18: .line 1502
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        19: .line 1478
            aconst_null
            areturn
        20: .line 1481
      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
        21: .line 1482
            aload 5 /* types */
            arraylength
            anewarray java.lang.Object
            astore 6 /* values */
        start local 6 // java.lang.Object[] values
        22: .line 1483
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyUpdateability:()[Z
            astore 7 /* includeProperty */
        start local 7 // boolean[] includeProperty
        23: .line 1484
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        24: goto 33
        25: .line 1485
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable org.hibernate.engine.spi.SharedSessionContractImplementor 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 32
        26: .line 1486
            aload 6 /* values */
            iload 8 /* i */
            aload 5 /* types */
            iload 8 /* i */
            aaload
        27: .line 1487
            aload 4 /* rs */
        28: .line 1488
            aload 0 /* this */
            ldc ""
            iload 8 /* i */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyAliases:(Ljava/lang/String;I)[Ljava/lang/String;
        29: .line 1489
            aload 2 /* session */
        30: .line 1490
            aconst_null
        31: .line 1486
            invokeinterface org.hibernate.type.Type.hydrate:(Ljava/sql/ResultSet;[Ljava/lang/String;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            aastore
        32: .line 1484
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        33: iload 8 /* i */
            aload 5 /* types */
            arraylength
            if_icmplt 25
        end local 8 // int i
        34: .line 1494
            aload 6 /* values */
            astore 10
        35: .line 1497
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 4 /* rs */
            aload 3 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        36: .line 1501
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 3 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        37: .line 1502
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        38: .line 1494
            aload 10
            areturn
        end local 7 // boolean[] includeProperty
        end local 6 // java.lang.Object[] values
        end local 5 // org.hibernate.type.Type[] types
        39: .line 1496
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable org.hibernate.engine.spi.SharedSessionContractImplementor java.sql.PreparedStatement java.sql.ResultSet
      StackMap stack: java.lang.Throwable
            astore 9
        40: .line 1497
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 4 /* rs */
            aload 3 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        41: .line 1498
            aload 9
            athrow
        end local 4 // java.sql.ResultSet rs
        42: .line 1500
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable org.hibernate.engine.spi.SharedSessionContractImplementor java.sql.PreparedStatement
      StackMap stack: java.lang.Throwable
            astore 11
        43: .line 1501
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 3 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        44: .line 1502
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        45: .line 1503
            aload 11
            athrow
        end local 3 // java.sql.PreparedStatement ps
        46: .line 1505
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable org.hibernate.engine.spi.SharedSessionContractImplementor
      StackMap stack: java.sql.SQLException
            astore 3 /* e */
        start local 3 // java.sql.SQLException e
        47: .line 1506
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcServices:()Lorg/hibernate/engine/jdbc/spi/JdbcServices;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcServices.getSqlExceptionHelper:()Lorg/hibernate/engine/jdbc/spi/SqlExceptionHelper;
        48: .line 1507
            aload 3 /* e */
        49: .line 1508
            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;
        50: .line 1509
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSQLSnapshotSelectString:()Ljava/lang/String;
        51: .line 1506
            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.SharedSessionContractImplementor session
        end local 1 // java.io.Serializable id
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   52     0             this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   52     1               id  Ljava/io/Serializable;
            0   52     2          session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
           13   46     3               ps  Ljava/sql/PreparedStatement;
           15   42     4               rs  Ljava/sql/ResultSet;
           21   39     5            types  [Lorg/hibernate/type/Type;
           22   39     6           values  [Ljava/lang/Object;
           23   39     7  includeProperty  [Z
           24   34     8                i  I
           47   52     3                e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          15    16      39  any
          20    35      39  any
          13    17      42  any
          20    36      42  any
          39    42      42  any
           8    19      46  Class java.sql.SQLException
          20    38      46  Class java.sql.SQLException
          39    46      46  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.SharedSessionContractImplementor);
    descriptor: (Ljava/io/Serializable;Ljava/lang/String;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 1518
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 6
         1: .line 1519
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         2: .line 1520
            ldc "resolving unique key [%s] to identifier for entity [%s]"
         3: .line 1521
            aload 1 /* key */
         4: .line 1522
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
         5: .line 1519
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracef:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 1526
      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 1527
            iload 4 /* propertyIndex */
            ifge 11
         8: .line 1528
            new org.hibernate.HibernateException
            dup
         9: .line 1529
            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 1528
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 1532
      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 1535
            aload 3 /* session */
        13: .line 1536
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        14: .line 1537
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
        15: .line 1538
            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 1535
            astore 6 /* ps */
        start local 6 // java.sql.PreparedStatement ps
        17: .line 1540
            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/SharedSessionContractImplementor;)V
        18: .line 1541
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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 1544
            aload 7 /* rs */
            invokeinterface java.sql.ResultSet.next:()Z
            ifne 24
        20: .line 1550
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 7 /* rs */
            aload 6 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        21: .line 1554
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 6 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        22: .line 1555
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        23: .line 1545
            aconst_null
            areturn
        24: .line 1547
      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/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.io.Serializable
            astore 9
        25: .line 1550
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 7 /* rs */
            aload 6 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        26: .line 1554
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 6 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        27: .line 1555
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        28: .line 1547
            aload 9
            areturn
        29: .line 1549
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        30: .line 1550
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 7 /* rs */
            aload 6 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        31: .line 1551
            aload 8
            athrow
        end local 7 // java.sql.ResultSet rs
        32: .line 1553
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.String org.hibernate.engine.spi.SharedSessionContractImplementor int org.hibernate.type.Type java.sql.PreparedStatement
      StackMap stack: java.lang.Throwable
            astore 10
        33: .line 1554
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 6 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        34: .line 1555
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        35: .line 1556
            aload 10
            athrow
        end local 6 // java.sql.PreparedStatement ps
        36: .line 1558
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.String org.hibernate.engine.spi.SharedSessionContractImplementor int org.hibernate.type.Type
      StackMap stack: java.sql.SQLException
            astore 6 /* e */
        start local 6 // java.sql.SQLException e
        37: .line 1559
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcServices:()Lorg/hibernate/engine/jdbc/spi/JdbcServices;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcServices.getSqlExceptionHelper:()Lorg/hibernate/engine/jdbc/spi/SqlExceptionHelper;
        38: .line 1560
            aload 6 /* e */
        39: .line 1562
            ldc "could not resolve unique property [%s] to identifier for entity [%s]"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        40: .line 1563
            aload 2 /* uniquePropertyName */
            aastore
            dup
            iconst_1
        41: .line 1564
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            aastore
        42: .line 1561
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        43: .line 1566
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSQLSnapshotSelectString:()Ljava/lang/String;
        44: .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 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.SharedSessionContractImplementor 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   45     0                this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   45     1                 key  Ljava/io/Serializable;
            0   45     2  uniquePropertyName  Ljava/lang/String;
            0   45     3             session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            7   45     4       propertyIndex  I
           12   45     5        propertyType  Lorg/hibernate/type/Type;
           17   36     6                  ps  Ljava/sql/PreparedStatement;
           19   32     7                  rs  Ljava/sql/ResultSet;
           37   45     6                   e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          19    20      29  any
          24    25      29  any
          17    21      32  any
          24    26      32  any
          29    32      32  any
          12    23      36  Class java.sql.SQLException
          24    28      36  Class java.sql.SQLException
          29    36      36  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 1573
            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 1575
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isCommentsEnabled:()Z
            ifeq 3
         2: .line 1576
            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 1579
      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 1581
            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 1583
            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 1584
            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 1585
            aload 2 /* select */
            aload 4 /* selectFragment */
            invokevirtual org.hibernate.sql.Select.setSelectClause:(Lorg/hibernate/sql/SelectFragment;)Lorg/hibernate/sql/Select;
            pop
         8: .line 1587
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 5 /* whereClauseBuffer */
        start local 5 // java.lang.StringBuilder whereClauseBuffer
         9: .line 1588
            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 1590
            aload 3 /* rooAlias */
        11: .line 1591
            aload 0 /* this */
            iload 6 /* uniquePropertyIndex */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyTableNumber:(I)I
        12: .line 1589
            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 1593
            ldc ""
            astore 8 /* sep */
        start local 8 // java.lang.String sep
        14: .line 1594
            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 25
      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 1595
            aload 9 /* columnTemplate */
            ifnonnull 18
        17: .line 1596
            goto 24
        18: .line 1599
      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 */
        19: .line 1600
            ldc "$PlaceHolder$"
        20: .line 1601
            aload 7 /* uniquePropertyTableAlias */
        21: .line 1598
            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
        22: .line 1603
            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
        23: .line 1604
            ldc " and "
            astore 8 /* sep */
        end local 13 // java.lang.String columnReference
        end local 9 // java.lang.String columnTemplate
        24: .line 1594
      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:
        25: iload 10
            iload 11
            if_icmplt 15
        26: .line 1606
            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 37
      StackMap locals:
      StackMap stack:
        27: aload 12
            iload 10
            aaload
            astore 9 /* formulaTemplate */
        start local 9 // java.lang.String formulaTemplate
        28: .line 1607
            aload 9 /* formulaTemplate */
            ifnonnull 30
        29: .line 1608
            goto 36
        30: .line 1611
      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 */
        31: .line 1612
            ldc "$PlaceHolder$"
        32: .line 1613
            aload 7 /* uniquePropertyTableAlias */
        33: .line 1610
            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
        34: .line 1615
            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
        35: .line 1616
            ldc " and "
            astore 8 /* sep */
        end local 13 // java.lang.String formulaReference
        end local 9 // java.lang.String formulaTemplate
        36: .line 1606
      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:
        37: iload 10
            iload 11
            if_icmplt 27
        38: .line 1618
            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
        39: .line 1620
            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
        40: .line 1622
            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   41     0                      this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   41     1        uniquePropertyName  Ljava/lang/String;
            1   41     2                    select  Lorg/hibernate/sql/Select;
            4   41     3                  rooAlias  Ljava/lang/String;
            6   41     4            selectFragment  Lorg/hibernate/sql/SelectFragment;
            9   41     5         whereClauseBuffer  Ljava/lang/StringBuilder;
           10   41     6       uniquePropertyIndex  I
           13   41     7  uniquePropertyTableAlias  Ljava/lang/String;
           14   41     8                       sep  Ljava/lang/String;
           16   24     9            columnTemplate  Ljava/lang/String;
           22   24    13           columnReference  Ljava/lang/String;
           28   36     9           formulaTemplate  Ljava/lang/String;
           34   36    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 1630
            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 1631
            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 1630
            astore 1 /* select */
        start local 1 // org.hibernate.sql.SimpleSelect select
         3: .line 1632
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifeq 6
         4: .line 1633
            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 1634
            goto 7
         6: .line 1636
      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 1638
      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.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isCommentsEnabled:()Z
            ifeq 9
         8: .line 1639
            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 1641
      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 1645
            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 1649
            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 1653
            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 1657
            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 1659
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isCommentsEnabled:()Z
            ifeq 3
         2: .line 1660
            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 1663
      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 1668
            aload 0 /* this */
         5: .line 1669
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootAlias:()Ljava/lang/String;
         6: .line 1670
            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 1668
            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 1680
            aload 4 /* selectClause */
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 4 /* selectClause */
         9: .line 1682
            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 1683
            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 1682
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* fromClause */
        start local 5 // java.lang.String fromClause
        12: .line 1685
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
        13: .line 1686
            ldc "=? and "
            aload 3 /* aliasedIdColumns */
            invokestatic java.lang.String.join:(Ljava/lang/CharSequence;[Ljava/lang/CharSequence;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 1687
            ldc "=?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 1688
            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 1689
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        17: .line 1685
            astore 6 /* whereClause */
        start local 6 // java.lang.String whereClause
        18: .line 1691
            aload 2 /* select */
            aload 4 /* selectClause */
            invokevirtual org.hibernate.sql.Select.setSelectClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
        19: .line 1692
            aload 5 /* fromClause */
            invokevirtual org.hibernate.sql.Select.setFromClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
        20: .line 1693
            ldc ""
            ldc ""
            invokevirtual org.hibernate.sql.Select.setOuterJoins:(Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/Select;
        21: .line 1694
            aload 6 /* whereClause */
            invokevirtual org.hibernate.sql.Select.setWhereClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
        22: .line 1695
            invokevirtual org.hibernate.sql.Select.toStatementString:()Ljava/lang/String;
        23: .line 1691
            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 1703
            aload 0 /* this */
         1: .line 1704
            aload 1 /* alias */
         2: .line 1705
            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 1703
            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 1714
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyNames:()[Ljava/lang/String;
            arraylength
            istore 3 /* propertyCount */
        start local 3 // int propertyCount
         1: .line 1715
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyTableNumbersInSelect:()[I
            astore 4 /* propertyTableNumbers */
        start local 4 // int[] propertyTableNumbers
         2: .line 1716
            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 1717
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         4: goto 17
         5: .line 1718
      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 1719
            aload 5 /* frag */
         7: .line 1720
            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 1721
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnReaderTemplates:[[Ljava/lang/String;
            iload 6 /* i */
            aaload
         9: .line 1722
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnAliases:[[Ljava/lang/String;
            iload 6 /* i */
            aaload
        10: .line 1719
            invokevirtual org.hibernate.sql.SelectFragment.addColumnTemplates:(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Lorg/hibernate/sql/SelectFragment;
            pop
        11: .line 1724
            aload 5 /* frag */
        12: .line 1725
            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 1726
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnFormulaTemplates:[[Ljava/lang/String;
            iload 6 /* i */
            aaload
        14: .line 1727
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnAliases:[[Ljava/lang/String;
            iload 6 /* i */
            aaload
        15: .line 1724
            invokevirtual org.hibernate.sql.SelectFragment.addFormulas:(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Lorg/hibernate/sql/SelectFragment;
            pop
        16: .line 1717
      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 1731
            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 1738
            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 1740
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isCommentsEnabled:()Z
            ifeq 3
         2: .line 1741
            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 1744
      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 1745
            new java.lang.StringBuilder
            dup
            ldc ", "
            aload 2 /* aliasedIdColumns */
            invokestatic java.lang.String.join:(Ljava/lang/CharSequence;[Ljava/lang/CharSequence;)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 1746
            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 1745
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* selectClause */
        start local 3 // java.lang.String selectClause
         7: .line 1748
            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 1749
            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 1748
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* fromClause */
        start local 4 // java.lang.String fromClause
        10: .line 1751
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
        11: .line 1754
            ldc "=? and "
        12: .line 1755
            aload 2 /* aliasedIdColumns */
        13: .line 1753
            invokestatic java.lang.String.join:(Ljava/lang/CharSequence;[Ljava/lang/CharSequence;)Ljava/lang/String;
        14: .line 1752
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 1758
            ldc "=?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        16: .line 1759
            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;
        17: .line 1760
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        18: .line 1751
            astore 5 /* whereClause */
        start local 5 // java.lang.String whereClause
        19: .line 1768
            aload 1 /* select */
            aload 3 /* selectClause */
            invokevirtual org.hibernate.sql.Select.setSelectClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
        20: .line 1769
            aload 4 /* fromClause */
            invokevirtual org.hibernate.sql.Select.setFromClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
        21: .line 1770
            ldc ""
            ldc ""
            invokevirtual org.hibernate.sql.Select.setOuterJoins:(Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/Select;
        22: .line 1771
            aload 5 /* whereClause */
            invokevirtual org.hibernate.sql.Select.setWhereClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
        23: .line 1772
            invokevirtual org.hibernate.sql.Select.toStatementString:()Ljava/lang/String;
        24: .line 1768
            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   25     0              this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            1   25     1            select  Lorg/hibernate/sql/Select;
            4   25     2  aliasedIdColumns  [Ljava/lang/String;
            7   25     3      selectClause  Ljava/lang/String;
           10   25     4        fromClause  Ljava/lang/String;
           19   25     5       whereClause  Ljava/lang/String;

  public java.lang.Object forceVersionIncrement(java.io.Serializable, java.lang.Object, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Ljava/io/Serializable;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 1776
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifne 2
         1: .line 1777
            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 1780
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersionPropertyGenerated:()Z
            ifeq 4
         3: .line 1783
            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 1786
      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/SharedSessionContractImplementor;)Ljava/lang/Object;
            astore 4 /* nextVersion */
        start local 4 // java.lang.Object nextVersion
         5: .line 1787
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 12
         6: .line 1788
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         7: .line 1789
            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;
         8: .line 1790
            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;
         9: .line 1791
            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;
        10: .line 1789
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 1788
            invokeinterface org.hibernate.internal.CoreMessageLogger.trace:(Ljava/lang/Object;)V
        12: .line 1796
      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
        13: .line 1799
            aload 3 /* session */
        14: .line 1800
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        15: .line 1801
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
        16: .line 1802
            aload 5 /* versionIncrementString */
            iconst_0
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;Z)Ljava/sql/PreparedStatement;
        17: .line 1799
            astore 6 /* st */
        start local 6 // java.sql.PreparedStatement st
        18: .line 1804
            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/SharedSessionContractImplementor;)V
        19: .line 1805
            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/SharedSessionContractImplementor;)V
        20: .line 1806
            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/SharedSessionContractImplementor;)V
        21: .line 1807
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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
        22: .line 1808
            iload 7 /* rows */
            iconst_1
            if_icmpeq 28
        23: .line 1809
            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
        24: .line 1812
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object org.hibernate.engine.spi.SharedSessionContractImplementor java.lang.Object java.lang.String java.sql.PreparedStatement
      StackMap stack: java.lang.Throwable
            astore 8
        25: .line 1813
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 6 /* st */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        26: .line 1814
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        27: .line 1815
            aload 8
            athrow
        28: .line 1813
      StackMap locals:
      StackMap stack:
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 6 /* st */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        29: .line 1814
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        30: .line 1816
            goto 39
        end local 6 // java.sql.PreparedStatement st
        31: .line 1817
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object org.hibernate.engine.spi.SharedSessionContractImplementor java.lang.Object java.lang.String
      StackMap stack: java.sql.SQLException
            astore 7 /* sqle */
        start local 7 // java.sql.SQLException sqle
        32: .line 1818
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcServices:()Lorg/hibernate/engine/jdbc/spi/JdbcServices;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcServices.getSqlExceptionHelper:()Lorg/hibernate/engine/jdbc/spi/SqlExceptionHelper;
        33: .line 1819
            aload 7 /* sqle */
        34: .line 1820
            new java.lang.StringBuilder
            dup
            ldc "could not retrieve version: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        35: .line 1821
            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;
        36: .line 1820
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        37: .line 1822
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionSelectString:()Ljava/lang/String;
        38: .line 1818
            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
        start local 6 // java.sql.PreparedStatement st
        39: .line 1826
      StackMap locals: java.sql.PreparedStatement
      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.SharedSessionContractImplementor 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   40     0                    this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   40     1                      id  Ljava/io/Serializable;
            0   40     2          currentVersion  Ljava/lang/Object;
            0   40     3                 session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            5   40     4             nextVersion  Ljava/lang/Object;
           13   40     5  versionIncrementString  Ljava/lang/String;
           18   31     6                      st  Ljava/sql/PreparedStatement;
           39   40     6                      st  Ljava/sql/PreparedStatement;
           22   24     7                    rows  I
           32   39     7                    sqle  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          18    24      24  any
          13    30      31  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 1830
            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 1831
            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 1832
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isCommentsEnabled:()Z
            ifeq 4
         3: .line 1833
            aload 1 /* update */
            ldc "forced version increment"
            invokevirtual org.hibernate.sql.Update.setComment:(Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
         4: .line 1835
      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 1836
            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 1837
            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 1838
            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.SharedSessionContractImplementor);
    descriptor: (Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 1846
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 2
         1: .line 1847
            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 1851
      StackMap locals:
      StackMap stack:
            aload 2 /* session */
         3: .line 1852
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
         4: .line 1853
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
         5: .line 1854
            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 1851
            astore 3 /* st */
        start local 3 // java.sql.PreparedStatement st
         7: .line 1856
            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/SharedSessionContractImplementor;)V
         8: .line 1857
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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 1859
            aload 4 /* rs */
            invokeinterface java.sql.ResultSet.next:()Z
            ifne 14
        10: .line 1868
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 4 /* rs */
            aload 3 /* st */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        11: .line 1872
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 3 /* st */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        12: .line 1873
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        13: .line 1860
            aconst_null
            areturn
        14: .line 1862
      StackMap locals: java.sql.PreparedStatement java.sql.ResultSet
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifne 20
        15: .line 1863
            aload 0 /* this */
            astore 6
        16: .line 1868
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 4 /* rs */
            aload 3 /* st */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        17: .line 1872
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 3 /* st */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        18: .line 1873
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        19: .line 1863
            aload 6
            areturn
        20: .line 1865
      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/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            astore 6
        21: .line 1868
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 4 /* rs */
            aload 3 /* st */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        22: .line 1872
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 3 /* st */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        23: .line 1873
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        24: .line 1865
            aload 6
            areturn
        25: .line 1867
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        26: .line 1868
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 4 /* rs */
            aload 3 /* st */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        27: .line 1869
            aload 5
            athrow
        end local 4 // java.sql.ResultSet rs
        28: .line 1871
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable org.hibernate.engine.spi.SharedSessionContractImplementor java.sql.PreparedStatement
      StackMap stack: java.lang.Throwable
            astore 7
        29: .line 1872
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getLogicalConnection:()Lorg/hibernate/resource/jdbc/spi/LogicalConnectionImplementor;
            invokeinterface org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 3 /* st */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        30: .line 1873
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        31: .line 1874
            aload 7
            athrow
        end local 3 // java.sql.PreparedStatement st
        32: .line 1876
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable org.hibernate.engine.spi.SharedSessionContractImplementor
      StackMap stack: java.sql.SQLException
            astore 3 /* e */
        start local 3 // java.sql.SQLException e
        33: .line 1877
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcServices:()Lorg/hibernate/engine/jdbc/spi/JdbcServices;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcServices.getSqlExceptionHelper:()Lorg/hibernate/engine/jdbc/spi/SqlExceptionHelper;
        34: .line 1878
            aload 3 /* e */
        35: .line 1879
            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;
        36: .line 1880
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionSelectString:()Ljava/lang/String;
        37: .line 1877
            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.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
            7   32     3       st  Ljava/sql/PreparedStatement;
            9   28     4       rs  Ljava/sql/ResultSet;
           33   38     3        e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           9    10      25  any
          14    16      25  any
          20    21      25  any
           7    11      28  any
          14    17      28  any
          20    22      28  any
          25    28      28  any
           2    13      32  Class java.sql.SQLException
          14    19      32  Class java.sql.SQLException
          20    24      32  Class java.sql.SQLException
          25    32      32  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 1886
            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 1887
            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 1888
            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 1889
            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 1890
            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 1891
            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 1892
            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 1893
            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 1894
            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 1895
            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 1896
            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 1899
            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 1903
            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.SharedSessionContractImplementor);
    descriptor: (Ljava/io/Serializable;Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/LockMode;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 1912
            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/SharedSessionContractImplementor;)V
         1: .line 1913
            return
        end local 5 // org.hibernate.engine.spi.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
    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.SharedSessionContractImplementor);
    descriptor: (Ljava/io/Serializable;Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/LockOptions;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 1921
            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/SharedSessionContractImplementor;)V
         1: .line 1922
            return
        end local 5 // org.hibernate.engine.spi.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
    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 1925
            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 1929
            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 1933
            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 1948
            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 1963
            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 1993
            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 2005
            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 2006
            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 2007
            aload 3 /* type */
            invokeinterface org.hibernate.type.Type.isAssociationType:()Z
            ifeq 8
         3: .line 2008
            aload 3 /* type */
            checkcast org.hibernate.type.AssociationType
            astore 4 /* assocType */
        start local 4 // org.hibernate.type.AssociationType assocType
         4: .line 2009
            aload 4 /* assocType */
            invokeinterface org.hibernate.type.AssociationType.useLHSPrimaryKey:()Z
            ifeq 6
         5: .line 2011
            iconst_0
            ireturn
         6: .line 2013
      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 2015
            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 2027
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyNameClosure:()[Ljava/lang/String;
         9: .line 2028
            aload 2 /* rootPropertyName */
        10: .line 2026
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.indexOf:([Ljava/lang/Object;Ljava/lang/Object;)I
            istore 4 /* index */
        start local 4 // int index
        11: .line 2030
            iload 4 /* index */
            iconst_m1
            if_icmpne 12
            iconst_0
            goto 13
      StackMap locals: int
      StackMap stack:
        12: aload 0 /* this */
            iload 4 /* index */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyTableNumber:(I)I
      StackMap locals:
      StackMap stack: int
        13: 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   14     0              this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   14     1      propertyPath  Ljava/lang/String;
            1   14     2  rootPropertyName  Ljava/lang/String;
            2   14     3              type  Lorg/hibernate/type/Type;
            4    8     4         assocType  Lorg/hibernate/type/AssociationType;
           11   14     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 2034
            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 2035
            iload 2 /* tableIndex */
            ifne 3
         2: .line 2036
            getstatic org.hibernate.persister.entity.Queryable$Declarer.CLASS:Lorg/hibernate/persister/entity/Queryable$Declarer;
            areturn
         3: .line 2038
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 2 /* tableIndex */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isClassOrSuperclassTable:(I)Z
            ifeq 5
         4: .line 2039
            getstatic org.hibernate.persister.entity.Queryable$Declarer.SUPERCLASS:Lorg/hibernate/persister/entity/Queryable$Declarer;
            areturn
         5: .line 2042
      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 2049
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.discriminatorMetadata:Lorg/hibernate/persister/entity/DiscriminatorMetadata;
            ifnonnull 2
         1: .line 2050
            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 2052
      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 2056
            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 2068
            iload 1 /* tableNumber */
            ifne 2
         1: .line 2069
            aload 0 /* rootAlias */
            areturn
         2: .line 2071
      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 2072
            aload 0 /* rootAlias */
            ldc "_"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 5
         4: .line 2073
            aload 2 /* buf */
            bipush 95
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         5: .line 2075
      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 2079
            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 2080
            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 2081
            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 2082
            aload 4 /* cols */
            arraylength
            anewarray java.lang.String
            astore 6 /* result */
        start local 6 // java.lang.String[] result
         4: .line 2083
            iconst_0
            istore 7 /* j */
        start local 7 // int j
         5: goto 11
         6: .line 2084
      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 2085
            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 2086
            goto 10
         9: .line 2088
      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 2083
      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 2091
            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 2095
            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 2099
            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 2103
            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 2107
            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 2111
            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 2115
            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 2119
            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 2123
            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 2127
            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 2131
            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 2135
            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 2139
            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 2143
            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 2148
            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 2152
            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 2156
            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 2160
            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 2164
            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 2168
            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.lang.String[]);
    descriptor: ([Ljava/lang/String;)[I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String[] attributeNames
         0: .line 2173
            aload 1 /* attributeNames */
            ifnull 1
            aload 1 /* attributeNames */
            arraylength
            ifne 2
         1: .line 2174
      StackMap locals:
      StackMap stack:
            iconst_0
            newarray 10
            areturn
         2: .line 2176
      StackMap locals:
      StackMap stack:
            aload 1 /* attributeNames */
            arraylength
            newarray 10
            astore 2 /* fields */
        start local 2 // int[] fields
         3: .line 2177
            iconst_0
            istore 3 /* counter */
        start local 3 // int counter
         4: .line 2180
            aload 1 /* attributeNames */
            invokestatic java.util.Arrays.sort:([Ljava/lang/Object;)V
         5: .line 2182
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            aload 1 /* attributeNames */
            iconst_0
            aaload
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertyIndexOrNull:(Ljava/lang/String;)Ljava/lang/Integer;
            astore 4 /* index0 */
        start local 4 // java.lang.Integer index0
         6: .line 2183
            aload 4 /* index0 */
            ifnull 8
         7: .line 2184
            aload 2 /* fields */
            iload 3 /* counter */
            iinc 3 /* counter */ 1
            aload 4 /* index0 */
            invokevirtual java.lang.Integer.intValue:()I
            iastore
         8: .line 2187
      StackMap locals: int[] int java.lang.Integer
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         9: iconst_1
            istore 6 /* j */
        start local 6 // int j
        10: goto 16
        11: .line 2188
      StackMap locals: int int
      StackMap stack:
            aload 1 /* attributeNames */
            iload 5 /* i */
            aaload
            aload 1 /* attributeNames */
            iload 6 /* j */
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 15
        12: .line 2189
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            aload 1 /* attributeNames */
            iload 6 /* j */
            aaload
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getPropertyIndexOrNull:(Ljava/lang/String;)Ljava/lang/Integer;
            astore 7 /* index */
        start local 7 // java.lang.Integer index
        13: .line 2190
            aload 7 /* index */
            ifnull 15
        14: .line 2191
            aload 2 /* fields */
            iload 3 /* counter */
            iinc 3 /* counter */ 1
            aload 7 /* index */
            invokevirtual java.lang.Integer.intValue:()I
            iastore
        end local 7 // java.lang.Integer index
        15: .line 2187
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
            iinc 6 /* j */ 1
      StackMap locals:
      StackMap stack:
        16: iload 6 /* j */
            aload 1 /* attributeNames */
            arraylength
            if_icmplt 11
        end local 6 // int j
        end local 5 // int i
        17: .line 2196
            aload 2 /* fields */
            iload 3 /* counter */
            invokestatic java.util.Arrays.copyOf:([II)[I
            areturn
        end local 4 // java.lang.Integer index0
        end local 3 // int counter
        end local 2 // int[] fields
        end local 1 // java.lang.String[] attributeNames
        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  attributeNames  [Ljava/lang/String;
            3   18     2          fields  [I
            4   18     3         counter  I
            6   18     4          index0  Ljava/lang/Integer;
            9   17     5               i  I
           10   17     6               j  I
           13   15     7           index  Ljava/lang/Integer;
    MethodParameters:
                Name  Flags
      attributeNames  

  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 2200
            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 2204
            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 2208
            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 2212
            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 2216
            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 2220
            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 2224
            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 2228
            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 2230
            aload 3 /* rawAliases */
            ifnonnull 3
         2: .line 2231
            aconst_null
            areturn
         3: .line 2234
      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 2235
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         5: goto 8
         6: .line 2236
      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 2235
            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 2238
            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 2243
            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 2255
            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 2258
            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 2259
            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 2260
            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 2264
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasIdentifierProperty:()Z
            ifeq 7
         5: .line 2265
            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 2266
            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 2270
      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 2272
            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 2273
            aload 2 /* componentId */
            invokeinterface org.hibernate.type.CompositeType.getPropertyNames:()[Ljava/lang/String;
            astore 3 /* idPropertyNames */
        start local 3 // java.lang.String[] idPropertyNames
        10: .line 2274
            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 2275
            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 2277
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        13: goto 36
        14: .line 2278
      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 2279
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyAliases:Ljava/util/Map;
        16: .line 2280
            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 2281
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 4 /* idAliases */
            iload 6 /* i */
            aaload
            aastore
        18: .line 2279
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        19: .line 2283
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNames:Ljava/util/Map;
        20: .line 2284
            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 2285
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 5 /* idColumnNames */
            iload 6 /* i */
            aaload
            aastore
        22: .line 2283
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        23: .line 2289
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasIdentifierProperty:()Z
            ifeq 33
        24: .line 2290
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyAliases:Ljava/util/Map;
        25: .line 2291
            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 2292
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 4 /* idAliases */
            iload 6 /* i */
            aaload
            aastore
        27: .line 2290
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        28: .line 2294
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassPropertyColumnNames:Ljava/util/Map;
        29: .line 2295
            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 2296
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 5 /* idColumnNames */
            iload 6 /* i */
            aaload
            aastore
        31: .line 2294
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        32: .line 2298
            goto 35
        33: .line 2301
      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 2302
            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 2277
      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 2307
      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 2308
            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 2309
            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 2312
      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  

  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 2315
            goto 22
         1: .line 2317
      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 2318
            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 2319
            aload 3 /* prop */
            invokevirtual org.hibernate.mapping.Property.isComposite:()Z
            ifeq 10
         6: .line 2320
            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 2321
            aload 5 /* component */
            invokevirtual org.hibernate.mapping.Component.getPropertyIterator:()Ljava/util/Iterator;
            astore 6 /* compProps */
        start local 6 // java.util.Iterator compProps
         8: .line 2322
            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 2323
            goto 22
        10: .line 2325
      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 2326
            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 2327
            aload 3 /* prop */
            invokevirtual org.hibernate.mapping.Property.getColumnIterator:()Ljava/util/Iterator;
            astore 7 /* colIter */
        start local 7 // java.util.Iterator colIter
        13: .line 2328
            iconst_0
            istore 8 /* l */
        start local 8 // int l
        14: .line 2329
            goto 19
        15: .line 2330
      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 2331
            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 2332
            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 2333
            iinc 8 /* l */ 1
        end local 9 // org.hibernate.mapping.Selectable thing
        19: .line 2329
      StackMap locals:
      StackMap stack:
            aload 7 /* colIter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        20: .line 2336
            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 2337
            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 2315
      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 2341
            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.SharedSessionContractImplementor);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 2347
            aload 0 /* this */
            aload 1 /* propertyName */
            aload 3 /* session */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getAppropriateUniqueKeyLoader:(Ljava/lang/String;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Lorg/hibernate/loader/entity/EntityLoader;
            aload 3 /* session */
            aload 2 /* uniqueKey */
            invokevirtual org.hibernate.loader.entity.EntityLoader.loadByUniqueKey:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
    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.SharedSessionContractImplementor);
    descriptor: (Ljava/lang/String;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 2351
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.hasEnabledFilters:()Z
            ifne 4
         1: .line 2352
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.hasEnabledFetchProfiles:()Z
            ifne 4
         2: .line 2353
            aload 1 /* propertyName */
            bipush 46
            invokevirtual java.lang.String.indexOf:(I)I
         3: .line 2351
            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 2355
            iload 3 /* useStaticLoader */
            ifeq 8
         7: .line 2356
            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 2359
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
         9: .line 2360
            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 2361
            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 2362
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
        12: .line 2359
            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.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
            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 2368
            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 2372
            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 2373
            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 2374
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 14
         4: .line 2375
      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 2377
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.uniqueKeyLoaders:Ljava/util/Map;
         6: .line 2378
            aload 2 /* propertyNames */
            iload 3 /* i */
            aaload
         7: .line 2379
            aload 0 /* this */
         8: .line 2380
            aload 1 /* propertyTypes */
            iload 3 /* i */
            aaload
         9: .line 2381
            aload 0 /* this */
            iload 3 /* i */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyColumnNames:(I)[Ljava/lang/String;
        10: .line 2382
            getstatic org.hibernate.engine.spi.LoadQueryInfluencers.NONE:Lorg/hibernate/engine/spi/LoadQueryInfluencers;
        11: .line 2379
            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 2377
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 2374
      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 2388
            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 2394
            aload 1 /* uniqueKeyType */
            invokeinterface org.hibernate.type.Type.isEntityType:()Z
            ifeq 3
         1: .line 2395
            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 2396
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 4 /* className */
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.entityPersister:(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 2398
      StackMap locals:
      StackMap stack:
            new org.hibernate.loader.entity.EntityLoader
            dup
         4: .line 2399
            aload 0 /* this */
         5: .line 2400
            aload 2 /* columns */
         6: .line 2401
            aload 1 /* uniqueKeyType */
         7: .line 2402
            iconst_1
         8: .line 2403
            getstatic org.hibernate.LockMode.NONE:Lorg/hibernate/LockMode;
         9: .line 2404
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
        10: .line 2405
            aload 3 /* loadQueryInfluencers */
        11: .line 2398
            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 2410
            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 2414
            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 2418
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 12
         2: .line 2419
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyMapping:Lorg/hibernate/persister/entity/BasicEntityPropertyMapping;
         3: .line 2420
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyNameClosure:()[Ljava/lang/String;
            iload 2 /* i */
            aaload
         4: .line 2421
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyTypeClosure:()[Lorg/hibernate/type/Type;
            iload 2 /* i */
            aaload
         5: .line 2422
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyColumnNameClosure:()[[Ljava/lang/String;
            iload 2 /* i */
            aaload
         6: .line 2423
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyColumnReaderClosure:()[[Ljava/lang/String;
            iload 2 /* i */
            aaload
         7: .line 2424
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyColumnReaderTemplateClosure:()[[Ljava/lang/String;
            iload 2 /* i */
            aaload
         8: .line 2425
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyFormulaTemplateClosure:()[[Ljava/lang/String;
            iload 2 /* i */
            aaload
         9: .line 2426
            aload 1 /* mapping */
        10: .line 2419
            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
        11: .line 2418
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: 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
        13: .line 2429
            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   14     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   14     1  mapping  Lorg/hibernate/engine/spi/Mapping;
            1   13     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 2432
            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 2433
            aload 2 /* idProp */
            ifnull 6
         2: .line 2434
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyMapping:Lorg/hibernate/persister/entity/BasicEntityPropertyMapping;
         3: .line 2435
            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;
         4: .line 2436
            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 */
         5: .line 2434
            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
         6: .line 2439
      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 11
         7: .line 2440
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyMapping:Lorg/hibernate/persister/entity/BasicEntityPropertyMapping;
         8: .line 2441
            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;
         9: .line 2442
            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 */
        10: .line 2440
            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
        11: .line 2445
      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 16
        12: .line 2446
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyMapping:Lorg/hibernate/persister/entity/BasicEntityPropertyMapping;
        13: .line 2447
            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;
        14: .line 2448
            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 */
        15: .line 2446
            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
        16: .line 2451
      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   17     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   17     1  mapping  Lorg/hibernate/engine/spi/Mapping;
            1   17     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 2454
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyMapping:Lorg/hibernate/persister/entity/BasicEntityPropertyMapping;
         1: .line 2455
            ldc "class"
         2: .line 2456
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getDiscriminatorType:()Lorg/hibernate/type/Type;
         3: .line 2457
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getDiscriminatorColumnName:()Ljava/lang/String;
            aastore
         4: .line 2458
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getDiscriminatorColumnReaders:()Ljava/lang/String;
            aastore
         5: .line 2459
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getDiscriminatorColumnReaderTemplate:()Ljava/lang/String;
            aastore
         6: .line 2460
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getDiscriminatorFormulaTemplate:()Ljava/lang/String;
            aastore
         7: .line 2461
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
         8: .line 2454
            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 2463
            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   10     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   10     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 2466
            aload 0 /* this */
            aload 1 /* mapping */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.initOrdinaryPropertyPaths:(Lorg/hibernate/engine/spi/Mapping;)V
         1: .line 2467
            aload 0 /* this */
            aload 1 /* mapping */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.initOrdinaryPropertyPaths:(Lorg/hibernate/engine/spi/Mapping;)V
         2: .line 2468
            aload 0 /* this */
            aload 1 /* mapping */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.initIdentifierPropertyPaths:(Lorg/hibernate/engine/spi/Mapping;)V
         3: .line 2469
            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 2470
            aload 0 /* this */
            aload 1 /* mapping */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.initDiscriminatorPropertyPath:(Lorg/hibernate/engine/spi/Mapping;)V
         5: .line 2472
      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 2478
            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 2479
            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 2478
            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 2486
            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 2487
            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 2486
            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 2501
            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 2511
            aload 4 /* expectation */
            iload 1 /* rows */
            aload 5 /* statement */
            iconst_m1
            invokeinterface org.hibernate.jdbc.Expectation.verifyOutcome:(ILjava/sql/PreparedStatement;I)V
         1: .line 2512
            goto 16
         2: .line 2513
      StackMap locals:
      StackMap stack: org.hibernate.StaleStateException
            pop
         3: .line 2514
            aload 0 /* this */
            iload 3 /* tableNumber */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isNullableTable:(I)Z
            ifne 7
         4: .line 2515
            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/spi/StatisticsImplementor;
            invokeinterface org.hibernate.stat.spi.StatisticsImplementor.isStatisticsEnabled:()Z
            ifeq 6
         5: .line 2516
            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/spi/StatisticsImplementor;
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityName:()Ljava/lang/String;
            invokeinterface org.hibernate.stat.spi.StatisticsImplementor.optimisticFailure:(Ljava/lang/String;)V
         6: .line 2518
      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
         7: .line 2520
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         8: .line 2522
      StackMap locals:
      StackMap stack: org.hibernate.jdbc.TooManyRowsAffectedException
            pop
         9: .line 2523
            new org.hibernate.HibernateException
            dup
        10: .line 2524
            new java.lang.StringBuilder
            dup
            ldc "Duplicate identifier in table for: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        11: .line 2525
            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;
        12: .line 2524
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 2523
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 2528
      StackMap locals:
      StackMap stack: java.lang.Throwable
            pop
        15: .line 2529
            iconst_0
            ireturn
        16: .line 2531
      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   17     0         this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   17     1         rows  I
            0   17     2           id  Ljava/io/Serializable;
            0   17     3  tableNumber  I
            0   17     4  expectation  Lorg/hibernate/jdbc/Expectation;
            0   17     5    statement  Ljava/sql/PreparedStatement;
      Exception table:
        from    to  target  type
           0     1       2  Class org.hibernate.StaleStateException
           0     1       8  Class org.hibernate.jdbc.TooManyRowsAffectedException
           0     1      14  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 2535
            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 2547
            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 2550
            iload 4 /* useRowId */
            ifeq 4
         2: .line 2551
            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 2552
            goto 5
         4: .line 2554
      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 2557
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* hasColumns */
        start local 6 // boolean hasColumns
         6: .line 2558
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         7: goto 18
         8: .line 2559
      StackMap locals: int int
      StackMap stack:
            aload 1 /* includeProperty */
            iload 7 /* i */
            baload
            ifeq 17
            aload 0 /* this */
            iload 7 /* i */
            iload 2 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isPropertyOfTable:(II)Z
            ifeq 17
         9: .line 2560
            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 17
        10: .line 2562
            aload 5 /* update */
        11: .line 2563
            aload 0 /* this */
            iload 7 /* i */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyColumnNames:(I)[Ljava/lang/String;
        12: .line 2564
            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
        13: .line 2562
            invokevirtual org.hibernate.sql.Update.addColumns:([Ljava/lang/String;[Z[Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
        14: .line 2566
            iload 6 /* hasColumns */
            ifne 15
            aload 0 /* this */
            iload 7 /* i */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyColumnSpan:(I)I
            ifgt 15
            iconst_0
            goto 16
      StackMap locals:
      StackMap stack:
        15: iconst_1
      StackMap locals:
      StackMap stack: int
        16: istore 6 /* hasColumns */
        17: .line 2558
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: 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
        19: .line 2573
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.lobProperties:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 27
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister boolean[] int java.lang.Object[] int org.hibernate.sql.Update int top java.util.Iterator
      StackMap stack:
        20: 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
        21: .line 2574
            aload 1 /* includeProperty */
            iload 7 /* i */
            baload
            ifeq 27
            aload 0 /* this */
            iload 7 /* i */
            iload 2 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isPropertyOfTable:(II)Z
            ifeq 27
        22: .line 2576
            aload 5 /* update */
        23: .line 2577
            aload 0 /* this */
            iload 7 /* i */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyColumnNames:(I)[Ljava/lang/String;
        24: .line 2578
            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
        25: .line 2576
            invokevirtual org.hibernate.sql.Update.addColumns:([Ljava/lang/String;[Z[Ljava/lang/String;)Lorg/hibernate/sql/Update;
            pop
        26: .line 2580
            iconst_1
            istore 6 /* hasColumns */
        end local 7 // int i
        27: .line 2573
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        28: .line 2584
            iload 2 /* j */
            ifne 33
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifeq 33
            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 33
        29: .line 2588
            aload 0 /* this */
            aload 1 /* includeProperty */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.checkVersion:([Z)Z
            ifeq 62
        30: .line 2589
            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
        31: .line 2590
            iconst_1
            istore 6 /* hasColumns */
        32: .line 2592
            goto 62
        33: .line 2593
      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 62
            aload 3 /* oldFields */
            ifnull 62
        34: .line 2596
            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 36
        35: .line 2598
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyUpdateability:()[Z
            goto 37
        36: .line 2601
      StackMap locals:
      StackMap stack:
            aload 1 /* includeProperty */
        37: .line 2596
      StackMap locals:
      StackMap stack: boolean[]
            astore 7 /* includeInWhere */
        start local 7 // boolean[] includeInWhere
        38: .line 2603
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyVersionability:()[Z
            astore 8 /* versionability */
        start local 8 // boolean[] versionability
        39: .line 2604
            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
        40: .line 2605
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        41: goto 61
        42: .line 2606
      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 46
        43: .line 2607
            aload 0 /* this */
            iload 10 /* i */
            iload 2 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isPropertyOfTable:(II)Z
            ifeq 46
        44: .line 2608
            aload 8 /* versionability */
            iload 10 /* i */
            baload
            ifeq 46
        45: .line 2606
            iconst_1
            goto 47
      StackMap locals:
      StackMap stack:
        46: iconst_0
      StackMap locals:
      StackMap stack: int
        47: istore 11 /* include */
        start local 11 // boolean include
        48: .line 2609
            iload 11 /* include */
            ifeq 60
        49: .line 2612
            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
        50: .line 2613
            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
        51: .line 2614
            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
        52: .line 2615
            iconst_0
            istore 15 /* k */
        start local 15 // int k
        53: goto 59
        54: .line 2616
      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 57
        55: .line 2617
            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
        56: .line 2618
            goto 58
        57: .line 2620
      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
        58: .line 2615
      StackMap locals:
      StackMap stack:
            iinc 15 /* k */ 1
      StackMap locals:
      StackMap stack:
        59: iload 15 /* k */
            aload 14 /* propertyNullness */
            arraylength
            if_icmplt 54
        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
        60: .line 2605
      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:
        61: 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 42
        end local 10 // int i
        end local 9 // org.hibernate.type.Type[] types
        end local 8 // boolean[] versionability
        end local 7 // boolean[] includeInWhere
        62: .line 2628
      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.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isCommentsEnabled:()Z
            ifeq 64
        63: .line 2629
            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
        64: .line 2632
      StackMap locals:
      StackMap stack:
            iload 6 /* hasColumns */
            ifeq 65
            aload 5 /* update */
            invokevirtual org.hibernate.sql.Update.toStatementString:()Ljava/lang/String;
            goto 66
      StackMap locals:
      StackMap stack:
        65: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
        66: 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   67     0                   this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   67     1        includeProperty  [Z
            0   67     2                      j  I
            0   67     3              oldFields  [Ljava/lang/Object;
            0   67     4               useRowId  Z
            1   67     5                 update  Lorg/hibernate/sql/Update;
            6   67     6             hasColumns  Z
            7   19     7                      i  I
           21   27     7                      i  I
           38   62     7         includeInWhere  [Z
           39   62     8         versionability  [Z
           40   62     9                  types  [Lorg/hibernate/type/Type;
           41   62    10                      i  I
           48   60    11                include  Z
           50   60    12    propertyColumnNames  [Ljava/lang/String;
           51   60    13  propertyColumnWriters  [Ljava/lang/String;
           52   60    14       propertyNullness  [Z
           53   60    15                      k  I
    MethodParameters:
                 Name  Flags
      includeProperty  final
      j                final
      oldFields        final
      useRowId         final

  protected final boolean checkVersion(boolean[]);
    descriptor: ([Z)Z
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // boolean[] includeProperty
         0: .line 2636
            aload 1 /* includeProperty */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionProperty:()I
            baload
            ifne 3
         1: .line 2637
            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 2636
            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 2641
            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 2645
            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 2656
            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 2657
            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 2656
            astore 4 /* insert */
        start local 4 // org.hibernate.sql.Insert insert
         3: .line 2660
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: goto 32
         5: .line 2664
      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 31
         6: .line 2665
            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 31
         7: .line 2666
            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 2667
            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 2668
            aload 6 /* generationStrategy */
            invokeinterface org.hibernate.tuple.InDatabaseValueGenerationStrategy.referenceColumnsInSql:()Z
            ifeq 31
        10: .line 2670
            aload 6 /* generationStrategy */
            invokeinterface org.hibernate.tuple.InDatabaseValueGenerationStrategy.getReferencedColumnValues:()[Ljava/lang/String;
            ifnonnull 13
        11: .line 2671
            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 2672
            goto 23
        end local 7 // java.lang.String[] values
        13: .line 2674
      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 2675
            iload 8 /* numberOfColumns */
            anewarray java.lang.String
            astore 7 /* values */
        start local 7 // java.lang.String[] values
        15: .line 2676
            iconst_0
            istore 9 /* x */
        start local 9 // int x
        16: goto 22
        17: .line 2677
      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 2678
            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 2679
            goto 21
        20: .line 2681
      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 2676
      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 2685
      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 2687
            goto 31
        25: .line 2688
      StackMap locals:
      StackMap stack:
            aload 2 /* includeProperty */
            iload 5 /* i */
            baload
            ifeq 31
        26: .line 2689
            aload 4 /* insert */
        27: .line 2690
            aload 0 /* this */
            iload 5 /* i */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyColumnNames:(I)[Ljava/lang/String;
        28: .line 2691
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnInsertable:[[Z
            iload 5 /* i */
            aaload
        29: .line 2692
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnWriters:[[Ljava/lang/String;
            iload 5 /* i */
            aaload
        30: .line 2689
            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
        31: .line 2660
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        32: 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
        33: .line 2700
            iload 3 /* j */
            ifne 35
        34: .line 2701
            aload 0 /* this */
            aload 4 /* insert */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.addDiscriminatorToInsert:(Lorg/hibernate/sql/Insert;)V
        35: .line 2705
      StackMap locals:
      StackMap stack:
            iload 3 /* j */
            ifne 38
            iload 1 /* identityInsert */
            ifeq 38
        36: .line 2706
            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
        37: .line 2707
            goto 39
        38: .line 2709
      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
        39: .line 2712
      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.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isCommentsEnabled:()Z
            ifeq 41
        40: .line 2713
            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
        41: .line 2719
      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 49
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int boolean[] int org.hibernate.sql.Insert top java.util.Iterator
      StackMap stack:
        42: 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
        43: .line 2720
            aload 2 /* includeProperty */
            iload 5 /* i */
            baload
            ifeq 49
            aload 0 /* this */
            iload 5 /* i */
            iload 3 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isPropertyOfTable:(II)Z
            ifeq 49
        44: .line 2722
            aload 4 /* insert */
        45: .line 2723
            aload 0 /* this */
            iload 5 /* i */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyColumnNames:(I)[Ljava/lang/String;
        46: .line 2724
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnInsertable:[[Z
            iload 5 /* i */
            aaload
        47: .line 2725
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnWriters:[[Ljava/lang/String;
            iload 5 /* i */
            aaload
        48: .line 2722
            invokevirtual org.hibernate.sql.Insert.addColumns:([Ljava/lang/String;[Z[Ljava/lang/String;)Lorg/hibernate/sql/Insert;
            pop
        end local 5 // int i
        49: .line 2719
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 42
        50: .line 2730
            aload 4 /* insert */
            invokevirtual org.hibernate.sql.Insert.toStatementString:()Ljava/lang/String;
            astore 5 /* result */
        start local 5 // java.lang.String result
        51: .line 2733
            iload 3 /* j */
            ifne 53
            iload 1 /* identityInsert */
            ifeq 53
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.useInsertSelectIdentity:()Z
            ifeq 53
        52: .line 2734
            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.getIdentityColumnSupport:()Lorg/hibernate/dialect/identity/IdentityColumnSupport;
            aload 5 /* result */
            invokeinterface org.hibernate.dialect.identity.IdentityColumnSupport.appendIdentitySelectToInsert:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* result */
        53: .line 2737
      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   54     0                this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   54     1      identityInsert  Z
            0   54     2     includeProperty  [Z
            0   54     3                   j  I
            3   54     4              insert  Lorg/hibernate/sql/Insert;
            4   33     5                   i  I
            8   31     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
           43   49     5                   i  I
           51   54     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 2751
            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 2752
            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 2755
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 7
         4: .line 2756
      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 2758
            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 2755
      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 2765
            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 2766
            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 2767
            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 2765
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        13: .line 2772
            aload 0 /* this */
            aload 2 /* insert */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.addDiscriminatorToInsert:(Lorg/hibernate/sql/Insert;)V
        14: .line 2776
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isCommentsEnabled:()Z
            ifeq 16
        15: .line 2777
            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 2780
      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 2787
            new org.hibernate.sql.Delete
            dup
            invokespecial org.hibernate.sql.Delete.<init>:()V
         1: .line 2788
            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 2789
            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 2787
            astore 2 /* delete */
        start local 2 // org.hibernate.sql.Delete delete
         4: .line 2790
            iload 1 /* j */
            ifne 6
         5: .line 2791
            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 2793
      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.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isCommentsEnabled:()Z
            ifeq 8
         7: .line 2794
            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 2796
      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.SharedSessionContractImplementor, boolean);
    descriptor: (Ljava/io/Serializable;[Ljava/lang/Object;[Z[[ZILjava/sql/PreparedStatement;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;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.SharedSessionContractImplementor session
        start local 8 // boolean isUpdate
         0: .line 2808
            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/SharedSessionContractImplementor;IZ)I
            ireturn
        end local 8 // boolean isUpdate
        end local 7 // org.hibernate.engine.spi.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
            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.SharedSessionContractImplementor, int, boolean);
    descriptor: (Ljava/io/Serializable;[Ljava/lang/Object;Ljava/lang/Object;[Z[[ZILjava/sql/PreparedStatement;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;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.SharedSessionContractImplementor session
        start local 9 // int index
        start local 10 // boolean isUpdate
         0: .line 2826
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 2
         1: .line 2827
            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 2830
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 11 /* i */
        start local 11 // int i
         3: goto 9
         4: .line 2831
      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 2832
            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 2833
            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/SharedSessionContractImplementor;)V
         7: .line 2834
            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 2830
      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 2838
            iload 10 /* isUpdate */
            ifne 12
        11: .line 2839
            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/SharedSessionContractImplementor;I)I
            iadd
            istore 9 /* index */
        12: .line 2845
      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.SharedSessionContractImplementor 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 2846
            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 2847
            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/SharedSessionContractImplementor;)V
        16: .line 2848
            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 2845
      StackMap locals:
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        18: .line 2852
            iload 10 /* isUpdate */
            ifeq 20
        19: .line 2853
            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/SharedSessionContractImplementor;I)I
            iadd
            istore 9 /* index */
        20: .line 2856
      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.SharedSessionContractImplementor 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.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
            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.SharedSessionContractImplementor, int);
    descriptor: (Ljava/io/Serializable;Ljava/lang/Object;Ljava/sql/PreparedStatement;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;I)I
    flags: (0x0002) ACC_PRIVATE
    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 rowId
        start local 3 // java.sql.PreparedStatement ps
        start local 4 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        start local 5 // int index
         0: .line 2866
            aload 2 /* rowId */
            ifnull 10
         1: .line 2867
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 8
         2: .line 2868
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         3: .line 2870
            ldc "binding parameter [%s] as ROWID - [%s]"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         4: .line 2871
            iload 5 /* index */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
         5: .line 2872
            aload 2 /* rowId */
            aastore
         6: .line 2869
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            iconst_0
            anewarray java.lang.Object
         7: .line 2868
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracev:(Ljava/lang/String;[Ljava/lang/Object;)V
         8: .line 2877
      StackMap locals:
      StackMap stack:
            aload 3 /* ps */
            iload 5 /* index */
            aload 2 /* rowId */
            invokeinterface java.sql.PreparedStatement.setObject:(ILjava/lang/Object;)V
         9: .line 2878
            iconst_1
            ireturn
        10: .line 2880
      StackMap locals:
      StackMap stack:
            aload 1 /* id */
            ifnull 13
        11: .line 2881
            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/SharedSessionContractImplementor;)V
        12: .line 2882
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnSpan:()I
            ireturn
        13: .line 2884
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 5 // int index
        end local 4 // org.hibernate.engine.spi.SharedSessionContractImplementor 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   14     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   14     1       id  Ljava/io/Serializable;
            0   14     2    rowId  Ljava/lang/Object;
            0   14     3       ps  Ljava/sql/PreparedStatement;
            0   14     4  session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            0   14     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.SharedSessionContractImplementor);
    descriptor: (Ljava/sql/ResultSet;Ljava/io/Serializable;Ljava/lang/Object;Lorg/hibernate/persister/entity/Loadable;[[Ljava/lang/String;ZLorg/hibernate/engine/spi/SharedSessionContractImplementor;)[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.SharedSessionContractImplementor session
         0: .line 2901
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 2
         1: .line 2902
            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 2905
      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 2907
            aload 8 /* rootPersister */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasSequentialSelect:()Z
            istore 9 /* hasDeferred */
        start local 9 // boolean hasDeferred
         4: .line 2908
            aconst_null
            astore 10 /* sequentialSelect */
        start local 10 // java.sql.PreparedStatement sequentialSelect
         5: .line 2909
            aconst_null
            astore 11 /* sequentialResultSet */
        start local 11 // java.sql.ResultSet sequentialResultSet
         6: .line 2910
            iconst_0
            istore 12 /* sequentialSelectEmpty */
        start local 12 // boolean sequentialSelectEmpty
         7: .line 2913
            iload 9 /* hasDeferred */
            ifeq 19
         8: .line 2914
            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 2915
            aload 13 /* sql */
            ifnull 19
        10: .line 2917
            aload 7 /* session */
        11: .line 2918
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        12: .line 2919
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
        13: .line 2920
            aload 13 /* sql */
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
        14: .line 2917
            astore 10 /* sequentialSelect */
        15: .line 2921
            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/SharedSessionContractImplementor;)V
        16: .line 2922
            aload 7 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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 2923
            aload 11 /* sequentialResultSet */
            invokeinterface java.sql.ResultSet.next:()Z
            ifne 19
        18: .line 2945
            iconst_1
            istore 12 /* sequentialSelectEmpty */
        end local 13 // java.lang.String sql
        19: .line 2950
      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.SharedSessionContractImplementor 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 2951
            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 2952
            aload 14 /* types */
            arraylength
            anewarray java.lang.Object
            astore 15 /* values */
        start local 15 // java.lang.Object[] values
        22: .line 2953
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyLaziness:()[Z
            astore 16 /* laziness */
        start local 16 // boolean[] laziness
        23: .line 2954
            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 2956
            iconst_0
            istore 18 /* i */
        start local 18 // int i
        25: goto 49
        26: .line 2957
      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.SharedSessionContractImplementor 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 2958
            aload 15 /* values */
            iload 18 /* i */
            getstatic org.hibernate.property.access.internal.PropertyAccessStrategyBackRefImpl.UNKNOWN:Ljava/io/Serializable;
            aastore
        28: .line 2959
            goto 48
        29: .line 2960
      StackMap locals:
      StackMap stack:
            iload 6 /* allProperties */
            ifne 30
            aload 16 /* laziness */
            iload 18 /* i */
            baload
            ifne 47
        30: .line 2962
      StackMap locals:
      StackMap stack:
            iload 9 /* hasDeferred */
            ifeq 33
        31: .line 2963
            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 2962
            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 2964
            iload 19 /* propertyIsDeferred */
            ifeq 38
            iload 12 /* sequentialSelectEmpty */
            ifeq 38
        36: .line 2965
            aload 15 /* values */
            iload 18 /* i */
            aconst_null
            aastore
        37: .line 2966
            goto 48
        38: .line 2968
      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 2969
            iload 19 /* propertyIsDeferred */
            ifeq 43
        42: .line 2970
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnAliases:[[Ljava/lang/String;
            iload 18 /* i */
            aaload
            goto 44
        43: .line 2971
      StackMap locals: java.sql.ResultSet
      StackMap stack:
            aload 5 /* suffixedPropertyColumns */
            iload 18 /* i */
            aaload
        44: .line 2969
      StackMap locals:
      StackMap stack: java.lang.String[]
            astore 21 /* cols */
        start local 21 // java.lang.String[] cols
        45: .line 2972
            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/SharedSessionContractImplementor;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
        46: .line 2974
            goto 48
        47: .line 2976
      StackMap locals:
      StackMap stack:
            aload 15 /* values */
            iload 18 /* i */
            getstatic org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer.UNFETCHED_PROPERTY:Ljava/io/Serializable;
            aastore
        48: .line 2956
      StackMap locals:
      StackMap stack:
            iinc 18 /* i */ 1
      StackMap locals:
      StackMap stack:
        49: iload 18 /* i */
            aload 14 /* types */
            arraylength
            if_icmplt 26
        end local 18 // int i
        50: .line 2980
            aload 11 /* sequentialResultSet */
            ifnull 52
        51: .line 2981
            aload 7 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 11 /* sequentialResultSet */
            aload 10 /* sequentialSelect */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        52: .line 2984
      StackMap locals:
      StackMap stack:
            aload 15 /* values */
            astore 23
        53: .line 2988
            aload 10 /* sequentialSelect */
            ifnull 56
        54: .line 2989
            aload 7 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 10 /* sequentialSelect */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        55: .line 2990
            aload 7 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        56: .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.SharedSessionContractImplementor 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
        57: .line 2987
      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.SharedSessionContractImplementor org.hibernate.persister.entity.AbstractEntityPersister int java.sql.PreparedStatement java.sql.ResultSet int
      StackMap stack: java.lang.Throwable
            astore 22
        58: .line 2988
            aload 10 /* sequentialSelect */
            ifnull 61
        59: .line 2989
            aload 7 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 10 /* sequentialSelect */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        60: .line 2990
            aload 7 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        61: .line 2992
      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.SharedSessionContractImplementor 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.SharedSessionContractImplementor 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   62     0                     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   62     1                       rs  Ljava/sql/ResultSet;
            0   62     2                       id  Ljava/io/Serializable;
            0   62     3                   object  Ljava/lang/Object;
            0   62     4             rootLoadable  Lorg/hibernate/persister/entity/Loadable;
            0   62     5  suffixedPropertyColumns  [[Ljava/lang/String;
            0   62     6            allProperties  Z
            0   62     7                  session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            3   62     8            rootPersister  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            4   62     9              hasDeferred  Z
            5   62    10         sequentialSelect  Ljava/sql/PreparedStatement;
            6   62    11      sequentialResultSet  Ljava/sql/ResultSet;
            7   62    12    sequentialSelectEmpty  Z
            9   19    13                      sql  Ljava/lang/String;
           20   57    13                propNames  [Ljava/lang/String;
           21   57    14                    types  [Lorg/hibernate/type/Type;
           22   57    15                   values  [Ljava/lang/Object;
           23   57    16                 laziness  [Z
           24   57    17        propSubclassNames  [Ljava/lang/String;
           25   50    18                        i  I
           35   46    19       propertyIsDeferred  Z
           41   46    20        propertyResultSet  Ljava/sql/ResultSet;
           45   46    21                     cols  [Ljava/lang/String;
      Exception table:
        from    to  target  type
           7    53      57  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 2996
            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.getIdentityColumnSupport:()Lorg/hibernate/dialect/identity/IdentityColumnSupport;
            invokeinterface org.hibernate.dialect.identity.IdentityColumnSupport.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 3000
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.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 3004
            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.SharedSessionContractImplementor);
    descriptor: ([Ljava/lang/Object;[ZLjava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 3020
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 4
         1: .line 3021
            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 3022
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifeq 4
         3: .line 3023
            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 3027
      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/SharedSessionContractImplementor;Ljava/lang/Object;)V
            astore 6 /* binder */
        start local 6 // org.hibernate.id.insert.Binder binder
         5: .line 3037
            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/SharedSessionContractImplementor;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.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
            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 3042
            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.getIdentityColumnSupport:()Lorg/hibernate/dialect/identity/IdentityColumnSupport;
         1: .line 3044
            aload 0 /* this */
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableName:(I)Ljava/lang/String;
         2: .line 3045
            aload 0 /* this */
            iconst_0
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getKeyColumns:(I)[Ljava/lang/String;
            iconst_0
            aaload
         3: .line 3046
            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 3043
            invokeinterface org.hibernate.dialect.identity.IdentityColumnSupport.getIdentitySelectString:(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
         5: .line 3042
            areturn
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     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 3051
            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 3052
            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 3053
            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 3054
            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 3055
            invokevirtual org.hibernate.sql.SimpleSelect.toStatementString:()Ljava/lang/String;
         5: .line 3051
            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.SharedSessionContractImplementor);
    descriptor: (Ljava/io/Serializable;[Ljava/lang/Object;[ZILjava/lang/String;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=11, locals=15, 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.SharedSessionContractImplementor session
         0: .line 3075
            aload 0 /* this */
            iload 4 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isInverseTable:(I)Z
            ifeq 2
         1: .line 3076
            return
         2: .line 3081
      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 3082
            return
         4: .line 3085
      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 3086
            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 3087
            iload 4 /* j */
            ifne 8
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifeq 8
         7: .line 3088
            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 3093
      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 3094
            aload 7 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getConfiguredJdbcBatchSize:()Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            istore 9 /* jdbcBatchSizeToUse */
        start local 9 // int jdbcBatchSizeToUse
        10: .line 3095
            aload 8 /* expectation */
            invokeinterface org.hibernate.jdbc.Expectation.canBeBatched:()Z
            ifeq 11
            iload 9 /* jdbcBatchSizeToUse */
            iconst_1
            if_icmple 11
            iconst_1
            goto 12
      StackMap locals: org.hibernate.jdbc.Expectation int
      StackMap stack:
        11: iconst_0
      StackMap locals:
      StackMap stack: int
        12: istore 10 /* useBatch */
        start local 10 // boolean useBatch
        13: .line 3096
            iload 10 /* useBatch */
            ifeq 18
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.inserBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
            ifnonnull 18
        14: .line 3097
            aload 0 /* this */
            new org.hibernate.engine.jdbc.batch.internal.BasicBatchKey
            dup
        15: .line 3098
            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;
        16: .line 3099
            aload 8 /* expectation */
            invokespecial org.hibernate.engine.jdbc.batch.internal.BasicBatchKey.<init>:(Ljava/lang/String;Lorg/hibernate/jdbc/Expectation;)V
        17: .line 3097
            putfield org.hibernate.persister.entity.AbstractEntityPersister.inserBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
        18: .line 3102
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 4 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isInsertCallable:(I)Z
            istore 11 /* callable */
        start local 11 // boolean callable
        19: .line 3107
            iload 10 /* useBatch */
            ifeq 26
        20: .line 3108
            aload 7 /* session */
        21: .line 3109
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        22: .line 3110
            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;
        23: .line 3111
            aload 5 /* sql */
            iload 11 /* callable */
            invokeinterface org.hibernate.engine.jdbc.batch.spi.Batch.getBatchStatement:(Ljava/lang/String;Z)Ljava/sql/PreparedStatement;
        24: .line 3108
            astore 12 /* insert */
        start local 12 // java.sql.PreparedStatement insert
        25: .line 3112
            goto 31
        end local 12 // java.sql.PreparedStatement insert
        26: .line 3114
      StackMap locals: int
      StackMap stack:
            aload 7 /* session */
        27: .line 3115
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        28: .line 3116
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
        29: .line 3117
            aload 5 /* sql */
            iload 11 /* callable */
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;Z)Ljava/sql/PreparedStatement;
        30: .line 3114
            astore 12 /* insert */
        start local 12 // java.sql.PreparedStatement insert
        31: .line 3121
      StackMap locals: java.sql.PreparedStatement
      StackMap stack:
            iconst_1
            istore 13 /* index */
        start local 13 // int index
        32: .line 3122
            iload 13 /* index */
            aload 8 /* expectation */
            aload 12 /* insert */
            invokeinterface org.hibernate.jdbc.Expectation.prepare:(Ljava/sql/PreparedStatement;)I
            iadd
            istore 13 /* index */
        33: .line 3127
            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 12 /* insert */
            aload 7 /* session */
            iload 13 /* 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/SharedSessionContractImplementor;IZ)I
            pop
        34: .line 3129
            iload 10 /* useBatch */
            ifeq 37
        35: .line 3130
            aload 7 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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
        36: .line 3131
            goto 52
        37: .line 3133
      StackMap locals: int
      StackMap stack:
            aload 8 /* expectation */
        38: .line 3134
            aload 7 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        39: .line 3135
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResultSetReturn:()Lorg/hibernate/engine/jdbc/spi/ResultSetReturn;
        40: .line 3136
            aload 12 /* insert */
            invokeinterface org.hibernate.engine.jdbc.spi.ResultSetReturn.executeUpdate:(Ljava/sql/PreparedStatement;)I
            aload 12 /* insert */
            iconst_m1
        41: .line 3133
            invokeinterface org.hibernate.jdbc.Expectation.verifyOutcome:(ILjava/sql/PreparedStatement;I)V
        end local 13 // int index
        42: .line 3140
            goto 52
        43: .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.SharedSessionContractImplementor org.hibernate.jdbc.Expectation int int int java.sql.PreparedStatement
      StackMap stack: java.sql.SQLException
            astore 13 /* e */
        start local 13 // java.sql.SQLException e
        44: .line 3142
            iload 10 /* useBatch */
            ifeq 46
        45: .line 3143
            aload 7 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.abortBatch:()V
        46: .line 3145
      StackMap locals: java.sql.SQLException
      StackMap stack:
            aload 13 /* e */
            athrow
        end local 13 // java.sql.SQLException e
        47: .line 3147
      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.SharedSessionContractImplementor org.hibernate.jdbc.Expectation int int int java.sql.PreparedStatement
      StackMap stack: java.lang.Throwable
            astore 14
        48: .line 3148
            iload 10 /* useBatch */
            ifne 51
        49: .line 3149
            aload 7 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 12 /* insert */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        50: .line 3150
            aload 7 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        51: .line 3152
      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.SharedSessionContractImplementor org.hibernate.jdbc.Expectation int int int java.sql.PreparedStatement top java.lang.Throwable
      StackMap stack:
            aload 14
            athrow
        52: .line 3148
      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.SharedSessionContractImplementor org.hibernate.jdbc.Expectation int int int java.sql.PreparedStatement
      StackMap stack:
            iload 10 /* useBatch */
            ifne 62
        53: .line 3149
            aload 7 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 12 /* insert */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        54: .line 3150
            aload 7 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        end local 12 // java.sql.PreparedStatement insert
        55: .line 3153
            goto 62
        56: .line 3154
      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.SharedSessionContractImplementor org.hibernate.jdbc.Expectation int int int
      StackMap stack: java.sql.SQLException
            astore 12 /* e */
        start local 12 // java.sql.SQLException e
        57: .line 3155
            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;
        58: .line 3156
            aload 12 /* e */
        59: .line 3157
            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;
        60: .line 3158
            aload 5 /* sql */
        61: .line 3155
            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
        62: .line 3162
      StackMap locals:
      StackMap stack:
            return
        end local 11 // boolean callable
        end local 10 // boolean useBatch
        end local 9 // int jdbcBatchSizeToUse
        end local 8 // org.hibernate.jdbc.Expectation expectation
        end local 7 // org.hibernate.engine.spi.SharedSessionContractImplementor 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   63     0                this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   63     1                  id  Ljava/io/Serializable;
            0   63     2              fields  [Ljava/lang/Object;
            0   63     3             notNull  [Z
            0   63     4                   j  I
            0   63     5                 sql  Ljava/lang/String;
            0   63     6              object  Ljava/lang/Object;
            0   63     7             session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            9   63     8         expectation  Lorg/hibernate/jdbc/Expectation;
           10   63     9  jdbcBatchSizeToUse  I
           13   63    10            useBatch  Z
           19   63    11            callable  Z
           25   26    12              insert  Ljava/sql/PreparedStatement;
           31   55    12              insert  Ljava/sql/PreparedStatement;
           32   42    13               index  I
           44   47    13                   e  Ljava/sql/SQLException;
           57   62    12                   e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          31    42      43  Class java.sql.SQLException
          31    47      47  any
          19    55      56  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.SharedSessionContractImplementor);
    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/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 3179
            aload 0 /* this */
            iload 6 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isInverseTable:(I)Z
            ifne 22
         1: .line 3182
            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 3184
            iconst_0
            istore 11 /* isRowToUpdate */
        start local 11 // boolean isRowToUpdate
         3: .line 3185
            goto 20
        end local 11 // boolean isRowToUpdate
         4: .line 3186
      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 3188
            iconst_1
            istore 11 /* isRowToUpdate */
        start local 11 // boolean isRowToUpdate
         6: .line 3189
            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/SharedSessionContractImplementor;[Ljava/lang/Object;)V
         7: .line 3190
            goto 20
        end local 11 // boolean isRowToUpdate
         8: .line 3194
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
         9: .line 3195
            aload 1 /* id */
        10: .line 3196
            aload 2 /* fields */
        11: .line 3197
            aload 3 /* oldFields */
        12: .line 3198
            aload 4 /* rowId */
        13: .line 3199
            aload 5 /* includeProperty */
        14: .line 3200
            iload 6 /* j */
        15: .line 3201
            aload 7 /* oldVersion */
        16: .line 3202
            aload 8 /* object */
        17: .line 3203
            aload 9 /* sql */
        18: .line 3204
            aload 10 /* session */
        19: .line 3194
            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/SharedSessionContractImplementor;)Z
            istore 11 /* isRowToUpdate */
        start local 11 // boolean isRowToUpdate
        20: .line 3208
      StackMap locals: int
      StackMap stack:
            iload 11 /* isRowToUpdate */
            ifne 22
            aload 0 /* this */
            aload 2 /* fields */
            iload 6 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isAllNull:([Ljava/lang/Object;I)Z
            ifne 22
        21: .line 3212
            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/SharedSessionContractImplementor;)V
        end local 11 // boolean isRowToUpdate
        22: .line 3217
      StackMap locals:
      StackMap stack:
            return
        end local 10 // org.hibernate.engine.spi.SharedSessionContractImplementor 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   23     0             this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   23     1               id  Ljava/io/Serializable;
            0   23     2           fields  [Ljava/lang/Object;
            0   23     3        oldFields  [Ljava/lang/Object;
            0   23     4            rowId  Ljava/lang/Object;
            0   23     5  includeProperty  [Z
            0   23     6                j  I
            0   23     7       oldVersion  Ljava/lang/Object;
            0   23     8           object  Ljava/lang/Object;
            0   23     9              sql  Ljava/lang/String;
            0   23    10          session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            3    4    11    isRowToUpdate  Z
            6    8    11    isRowToUpdate  Z
           20   22    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.SharedSessionContractImplementor);
    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/SharedSessionContractImplementor;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=11, locals=26, 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.SharedSessionContractImplementor session
         0: .line 3233
            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 3234
            aload 10 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getConfiguredJdbcBatchSize:()Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            istore 12 /* jdbcBatchSizeToUse */
        start local 12 // int jdbcBatchSizeToUse
         2: .line 3235
            aload 11 /* expectation */
            invokeinterface org.hibernate.jdbc.Expectation.canBeBatched:()Z
            ifeq 3
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isBatchable:()Z
            ifeq 3
            iload 12 /* jdbcBatchSizeToUse */
            iconst_1
            if_icmple 3
            iconst_1
            goto 4
      StackMap locals: org.hibernate.jdbc.Expectation int
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: istore 13 /* useBatch */
        start local 13 // boolean useBatch
         5: .line 3236
            iload 13 /* useBatch */
            ifeq 10
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.updateBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
            ifnonnull 10
         6: .line 3237
            aload 0 /* this */
            new org.hibernate.engine.jdbc.batch.internal.BasicBatchKey
            dup
         7: .line 3238
            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;
         8: .line 3239
            aload 11 /* expectation */
            invokespecial org.hibernate.engine.jdbc.batch.internal.BasicBatchKey.<init>:(Ljava/lang/String;Lorg/hibernate/jdbc/Expectation;)V
         9: .line 3237
            putfield org.hibernate.persister.entity.AbstractEntityPersister.updateBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
        10: .line 3242
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 6 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isUpdateCallable:(I)Z
            istore 14 /* callable */
        start local 14 // boolean callable
        11: .line 3243
            iload 6 /* j */
            ifne 12
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifeq 12
            iconst_1
            goto 13
      StackMap locals: int
      StackMap stack:
        12: iconst_0
      StackMap locals:
      StackMap stack: int
        13: istore 15 /* useVersion */
        start local 15 // boolean useVersion
        14: .line 3245
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 18
        15: .line 3246
            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
        16: .line 3247
            iload 15 /* useVersion */
            ifeq 18
        17: .line 3248
            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
        18: .line 3253
      StackMap locals: int
      StackMap stack:
            iconst_1
            istore 16 /* index */
        start local 16 // int index
        19: .line 3255
            iload 13 /* useBatch */
            ifeq 26
        20: .line 3256
            aload 10 /* session */
        21: .line 3257
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        22: .line 3258
            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;
        23: .line 3259
            aload 9 /* sql */
            iload 14 /* callable */
            invokeinterface org.hibernate.engine.jdbc.batch.spi.Batch.getBatchStatement:(Ljava/lang/String;Z)Ljava/sql/PreparedStatement;
        24: .line 3256
            astore 17 /* update */
        start local 17 // java.sql.PreparedStatement update
        25: .line 3260
            goto 31
        end local 17 // java.sql.PreparedStatement update
        26: .line 3262
      StackMap locals: int
      StackMap stack:
            aload 10 /* session */
        27: .line 3263
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        28: .line 3264
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
        29: .line 3265
            aload 9 /* sql */
            iload 14 /* callable */
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;Z)Ljava/sql/PreparedStatement;
        30: .line 3262
            astore 17 /* update */
        start local 17 // java.sql.PreparedStatement update
        31: .line 3269
      StackMap locals: java.sql.PreparedStatement
      StackMap stack:
            iload 16 /* index */
            aload 11 /* expectation */
            aload 17 /* update */
            invokeinterface org.hibernate.jdbc.Expectation.prepare:(Ljava/sql/PreparedStatement;)I
            iadd
            istore 16 /* index */
        32: .line 3272
            aload 0 /* this */
        33: .line 3273
            aload 1 /* id */
        34: .line 3274
            aload 2 /* fields */
        35: .line 3275
            aload 4 /* rowId */
        36: .line 3276
            aload 5 /* includeProperty */
        37: .line 3277
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnUpdateable:[[Z
        38: .line 3278
            iload 6 /* j */
        39: .line 3279
            aload 17 /* update */
        40: .line 3280
            aload 10 /* session */
        41: .line 3281
            iload 16 /* index */
        42: .line 3282
            iconst_1
        43: .line 3272
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.dehydrate:(Ljava/io/Serializable;[Ljava/lang/Object;Ljava/lang/Object;[Z[[ZILjava/sql/PreparedStatement;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;IZ)I
            istore 16 /* index */
        44: .line 3286
            iload 15 /* useVersion */
            ifeq 48
            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 48
        45: .line 3287
            aload 0 /* this */
            aload 5 /* includeProperty */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.checkVersion:([Z)Z
            ifeq 75
        46: .line 3288
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionType:()Lorg/hibernate/type/VersionType;
            aload 17 /* update */
            aload 7 /* oldVersion */
            iload 16 /* index */
            aload 10 /* session */
            invokeinterface org.hibernate.type.VersionType.nullSafeSet:(Ljava/sql/PreparedStatement;Ljava/lang/Object;ILorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
        47: .line 3290
            goto 75
        48: .line 3291
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isAllOrDirtyOptLocking:()Z
            ifeq 75
            aload 3 /* oldFields */
            ifnull 75
        49: .line 3292
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyVersionability:()[Z
            astore 18 /* versionability */
        start local 18 // boolean[] versionability
        50: .line 3293
            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 52
        51: .line 3294
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyUpdateability:()[Z
            goto 53
        52: .line 3295
      StackMap locals: boolean[]
      StackMap stack:
            aload 5 /* includeProperty */
        53: .line 3293
      StackMap locals:
      StackMap stack: boolean[]
            astore 19 /* includeOldField */
        start local 19 // boolean[] includeOldField
        54: .line 3296
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyTypes:()[Lorg/hibernate/type/Type;
            astore 20 /* types */
        start local 20 // org.hibernate.type.Type[] types
        55: .line 3297
            iconst_0
            istore 21 /* i */
        start local 21 // int i
        56: goto 74
        57: .line 3298
      StackMap locals: boolean[] org.hibernate.type.Type[] int
      StackMap stack:
            aload 19 /* includeOldField */
            iload 21 /* i */
            baload
            ifeq 61
        58: .line 3299
            aload 0 /* this */
            iload 21 /* i */
            iload 6 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isPropertyOfTable:(II)Z
            ifeq 61
        59: .line 3300
            aload 18 /* versionability */
            iload 21 /* i */
            baload
            ifeq 61
        60: .line 3298
            iconst_1
            goto 62
      StackMap locals:
      StackMap stack:
        61: iconst_0
      StackMap locals:
      StackMap stack: int
        62: istore 22 /* include */
        start local 22 // boolean include
        63: .line 3301
            iload 22 /* include */
            ifeq 73
        64: .line 3302
            aload 20 /* types */
            iload 21 /* i */
            aaload
            aload 3 /* oldFields */
            iload 21 /* 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 23 /* settable */
        start local 23 // boolean[] settable
        65: .line 3303
            aload 20 /* types */
            iload 21 /* i */
            aaload
        66: .line 3304
            aload 17 /* update */
        67: .line 3305
            aload 3 /* oldFields */
            iload 21 /* i */
            aaload
        68: .line 3306
            iload 16 /* index */
        69: .line 3307
            aload 23 /* settable */
        70: .line 3308
            aload 10 /* session */
        71: .line 3303
            invokeinterface org.hibernate.type.Type.nullSafeSet:(Ljava/sql/PreparedStatement;Ljava/lang/Object;I[ZLorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
        72: .line 3310
            iload 16 /* index */
            aload 23 /* settable */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.countTrue:([Z)I
            iadd
            istore 16 /* index */
        end local 23 // boolean[] settable
        end local 22 // boolean include
        73: .line 3297
      StackMap locals:
      StackMap stack:
            iinc 21 /* i */ 1
      StackMap locals:
      StackMap stack:
        74: iload 21 /* 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 57
        end local 21 // int i
        end local 20 // org.hibernate.type.Type[] types
        end local 19 // boolean[] includeOldField
        end local 18 // boolean[] versionability
        75: .line 3315
      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.SharedSessionContractImplementor org.hibernate.jdbc.Expectation int int int int int java.sql.PreparedStatement
      StackMap stack:
            iload 13 /* useBatch */
            ifeq 81
        76: .line 3316
            aload 10 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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
        77: .line 3337
            iload 13 /* useBatch */
            ifne 80
        78: .line 3338
            aload 10 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 17 /* update */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        79: .line 3339
            aload 10 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        80: .line 3317
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        81: .line 3320
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        82: .line 3321
            aload 10 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResultSetReturn:()Lorg/hibernate/engine/jdbc/spi/ResultSetReturn;
            aload 17 /* update */
            invokeinterface org.hibernate.engine.jdbc.spi.ResultSetReturn.executeUpdate:(Ljava/sql/PreparedStatement;)I
        83: .line 3322
            aload 1 /* id */
        84: .line 3323
            iload 6 /* j */
        85: .line 3324
            aload 11 /* expectation */
        86: .line 3325
            aload 17 /* update */
        87: .line 3320
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.check:(ILjava/io/Serializable;ILorg/hibernate/jdbc/Expectation;Ljava/sql/PreparedStatement;)Z
            istore 25
        88: .line 3337
            iload 13 /* useBatch */
            ifne 91
        89: .line 3338
            aload 10 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 17 /* update */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        90: .line 3339
            aload 10 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        91: .line 3320
      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.SharedSessionContractImplementor org.hibernate.jdbc.Expectation int int int int int java.sql.PreparedStatement top top top top top top top int
      StackMap stack:
            iload 25
            ireturn
        92: .line 3330
      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.SharedSessionContractImplementor org.hibernate.jdbc.Expectation int int int int int java.sql.PreparedStatement
      StackMap stack: java.sql.SQLException
            astore 18 /* e */
        start local 18 // java.sql.SQLException e
        93: .line 3331
            iload 13 /* useBatch */
            ifeq 95
        94: .line 3332
            aload 10 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.abortBatch:()V
        95: .line 3334
      StackMap locals: java.sql.SQLException
      StackMap stack:
            aload 18 /* e */
            athrow
        end local 18 // java.sql.SQLException e
        96: .line 3336
      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.SharedSessionContractImplementor org.hibernate.jdbc.Expectation int int int int int java.sql.PreparedStatement
      StackMap stack: java.lang.Throwable
            astore 24
        97: .line 3337
            iload 13 /* useBatch */
            ifne 100
        98: .line 3338
            aload 10 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 17 /* update */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        99: .line 3339
            aload 10 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
       100: .line 3341
      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.SharedSessionContractImplementor org.hibernate.jdbc.Expectation int int int int int java.sql.PreparedStatement top top top top top top java.lang.Throwable
      StackMap stack:
            aload 24
            athrow
        end local 17 // java.sql.PreparedStatement update
        end local 16 // int index
       101: .line 3344
      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.SharedSessionContractImplementor org.hibernate.jdbc.Expectation int int int int
      StackMap stack: java.sql.SQLException
            astore 16 /* e */
        start local 16 // java.sql.SQLException e
       102: .line 3345
            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;
       103: .line 3346
            aload 16 /* e */
       104: .line 3347
            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;
       105: .line 3348
            aload 9 /* sql */
       106: .line 3345
            invokevirtual org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert:(Ljava/sql/SQLException;Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/JDBCException;
            athrow
        end local 16 // java.sql.SQLException e
        end local 15 // boolean useVersion
        end local 14 // boolean callable
        end local 13 // boolean useBatch
        end local 12 // int jdbcBatchSizeToUse
        end local 11 // org.hibernate.jdbc.Expectation expectation
        end local 10 // org.hibernate.engine.spi.SharedSessionContractImplementor 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  107     0                this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0  107     1                  id  Ljava/io/Serializable;
            0  107     2              fields  [Ljava/lang/Object;
            0  107     3           oldFields  [Ljava/lang/Object;
            0  107     4               rowId  Ljava/lang/Object;
            0  107     5     includeProperty  [Z
            0  107     6                   j  I
            0  107     7          oldVersion  Ljava/lang/Object;
            0  107     8              object  Ljava/lang/Object;
            0  107     9                 sql  Ljava/lang/String;
            0  107    10             session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            1  107    11         expectation  Lorg/hibernate/jdbc/Expectation;
            2  107    12  jdbcBatchSizeToUse  I
            5  107    13            useBatch  Z
           11  107    14            callable  Z
           14  107    15          useVersion  Z
           19  101    16               index  I
           25   26    17              update  Ljava/sql/PreparedStatement;
           31  101    17              update  Ljava/sql/PreparedStatement;
           50   75    18      versionability  [Z
           54   75    19     includeOldField  [Z
           55   75    20               types  [Lorg/hibernate/type/Type;
           56   75    21                   i  I
           63   73    22             include  Z
           65   73    23            settable  [Z
           93   96    18                   e  Ljava/sql/SQLException;
          102  107    16                   e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          31    77      92  Class java.sql.SQLException
          81    88      92  Class java.sql.SQLException
          31    77      96  any
          81    88      96  any
          92    96      96  any
          18    80     101  Class java.sql.SQLException
          81    91     101  Class java.sql.SQLException
          92   101     101  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.SharedSessionContractImplementor, java.lang.Object[]);
    descriptor: (Ljava/io/Serializable;Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/String;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;[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.SharedSessionContractImplementor session
        start local 7 // java.lang.Object[] loadedState
         0: .line 3367
            aload 0 /* this */
            iload 3 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isInverseTable:(I)Z
            ifeq 2
         1: .line 3368
            return
         2: .line 3371
      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 3372
            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 3373
            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 3374
            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 3375
            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 3376
            aload 0 /* this */
            new org.hibernate.engine.jdbc.batch.internal.BasicBatchKey
            dup
        12: .line 3377
            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 3378
            aload 10 /* expectation */
            invokespecial org.hibernate.engine.jdbc.batch.internal.BasicBatchKey.<init>:(Ljava/lang/String;Lorg/hibernate/jdbc/Expectation;)V
        14: .line 3376
            putfield org.hibernate.persister.entity.AbstractEntityPersister.deleteBatchKey:Lorg/hibernate/engine/jdbc/batch/internal/BasicBatchKey;
        15: .line 3382
      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 3383
            iload 12 /* traceEnabled */
            ifeq 20
        17: .line 3384
            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 3385
            iload 8 /* useVersion */
            ifeq 20
        19: .line 3386
            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 3390
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 3 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isTableCascadeDeleteEnabled:(I)Z
            ifeq 24
        21: .line 3391
            iload 12 /* traceEnabled */
            ifeq 23
        22: .line 3392
            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 3394
      StackMap locals:
      StackMap stack:
            return
        24: .line 3400
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 14 /* index */
        start local 14 // int index
        25: .line 3401
            iload 11 /* useBatch */
            ifeq 32
        26: .line 3402
            aload 6 /* session */
        27: .line 3403
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        28: .line 3404
            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 3405
            aload 5 /* sql */
            iload 9 /* callable */
            invokeinterface org.hibernate.engine.jdbc.batch.spi.Batch.getBatchStatement:(Ljava/lang/String;Z)Ljava/sql/PreparedStatement;
        30: .line 3402
            astore 13 /* delete */
        start local 13 // java.sql.PreparedStatement delete
        31: .line 3406
            goto 37
        end local 13 // java.sql.PreparedStatement delete
        32: .line 3408
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object int java.lang.Object java.lang.String org.hibernate.engine.spi.SharedSessionContractImplementor java.lang.Object[] int int org.hibernate.jdbc.Expectation int int top int
      StackMap stack:
            aload 6 /* session */
        33: .line 3409
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        34: .line 3410
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
        35: .line 3411
            aload 5 /* sql */
            iload 9 /* callable */
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;Z)Ljava/sql/PreparedStatement;
        36: .line 3408
            astore 13 /* delete */
        start local 13 // java.sql.PreparedStatement delete
        37: .line 3416
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object int java.lang.Object java.lang.String org.hibernate.engine.spi.SharedSessionContractImplementor 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 3420
            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/SharedSessionContractImplementor;)V
        39: .line 3421
            iload 14 /* index */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierColumnSpan:()I
            iadd
            istore 14 /* index */
        40: .line 3425
            iload 8 /* useVersion */
            ifeq 43
        41: .line 3426
            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/SharedSessionContractImplementor;)V
        42: .line 3427
            goto 54
        43: .line 3428
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isAllOrDirtyOptLocking:()Z
            ifeq 54
            aload 7 /* loadedState */
            ifnull 54
        44: .line 3429
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyVersionability:()[Z
            astore 15 /* versionability */
        start local 15 // boolean[] versionability
        45: .line 3430
            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 3431
            iconst_0
            istore 17 /* i */
        start local 17 // int i
        47: goto 53
        48: .line 3432
      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 3435
            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 3436
            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/SharedSessionContractImplementor;)V
        51: .line 3437
            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 3431
      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 3442
      StackMap locals:
      StackMap stack:
            iload 11 /* useBatch */
            ifeq 57
        55: .line 3443
            aload 6 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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 3444
            goto 74
        57: .line 3446
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        58: .line 3447
            aload 6 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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
        59: .line 3448
            aload 1 /* id */
        60: .line 3449
            iload 3 /* j */
        61: .line 3450
            aload 10 /* expectation */
        62: .line 3451
            aload 13 /* delete */
        63: .line 3446
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.check:(ILjava/io/Serializable;ILorg/hibernate/jdbc/Expectation;Ljava/sql/PreparedStatement;)Z
            pop
        64: .line 3455
            goto 74
        65: .line 3456
      StackMap locals:
      StackMap stack: java.sql.SQLException
            astore 15 /* sqle */
        start local 15 // java.sql.SQLException sqle
        66: .line 3457
            iload 11 /* useBatch */
            ifeq 68
        67: .line 3458
            aload 6 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.abortBatch:()V
        68: .line 3460
      StackMap locals: java.sql.SQLException
      StackMap stack:
            aload 15 /* sqle */
            athrow
        end local 15 // java.sql.SQLException sqle
        69: .line 3462
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object int java.lang.Object java.lang.String org.hibernate.engine.spi.SharedSessionContractImplementor java.lang.Object[] int int org.hibernate.jdbc.Expectation int int java.sql.PreparedStatement int
      StackMap stack: java.lang.Throwable
            astore 19
        70: .line 3463
            iload 11 /* useBatch */
            ifne 73
        71: .line 3464
            aload 6 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 13 /* delete */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        72: .line 3465
            aload 6 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        73: .line 3467
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object int java.lang.Object java.lang.String org.hibernate.engine.spi.SharedSessionContractImplementor 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
        74: .line 3463
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object int java.lang.Object java.lang.String org.hibernate.engine.spi.SharedSessionContractImplementor java.lang.Object[] int int org.hibernate.jdbc.Expectation int int java.sql.PreparedStatement int
      StackMap stack:
            iload 11 /* useBatch */
            ifne 86
        75: .line 3464
            aload 6 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 13 /* delete */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        76: .line 3465
            aload 6 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        end local 14 // int index
        end local 13 // java.sql.PreparedStatement delete
        77: .line 3469
            goto 86
        78: .line 3470
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object int java.lang.Object java.lang.String org.hibernate.engine.spi.SharedSessionContractImplementor 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
        79: .line 3471
            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;
        80: .line 3472
            aload 13 /* sqle */
        81: .line 3473
            new java.lang.StringBuilder
            dup
            ldc "could not delete: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        82: .line 3474
            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;
        83: .line 3473
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        84: .line 3475
            aload 5 /* sql */
        85: .line 3471
            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
        86: .line 3480
      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.SharedSessionContractImplementor 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   87     0            this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   87     1              id  Ljava/io/Serializable;
            0   87     2         version  Ljava/lang/Object;
            0   87     3               j  I
            0   87     4          object  Ljava/lang/Object;
            0   87     5             sql  Ljava/lang/String;
            0   87     6         session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            0   87     7     loadedState  [Ljava/lang/Object;
            5   87     8      useVersion  Z
            6   87     9        callable  Z
            7   87    10     expectation  Lorg/hibernate/jdbc/Expectation;
           10   87    11        useBatch  Z
           16   87    12    traceEnabled  Z
           31   32    13          delete  Ljava/sql/PreparedStatement;
           37   77    13          delete  Ljava/sql/PreparedStatement;
           25   77    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
           66   69    15            sqle  Ljava/sql/SQLException;
           79   86    13            sqle  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          37    64      65  Class java.sql.SQLException
          37    69      69  any
          24    77      78  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 3483
            iload 1 /* byRowId */
            ifeq 4
         1: .line 3484
            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 3487
      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.SharedSessionContractImplementor);
    descriptor: (Ljava/io/Serializable;[Ljava/lang/Object;[IZ[Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 3506
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityMetamodel:()Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.hasPreUpdateGeneratedValues:()Z
            ifeq 19
         1: .line 3507
            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 /* valueGenerationStrategies */
        start local 10 // org.hibernate.tuple.InMemoryValueGenerationStrategy[] valueGenerationStrategies
         2: .line 3508
            aload 10 /* valueGenerationStrategies */
            arraylength
            istore 11 /* valueGenerationStrategiesSize */
        start local 11 // int valueGenerationStrategiesSize
         3: .line 3509
            iload 11 /* valueGenerationStrategiesSize */
            ifeq 19
         4: .line 3510
            iload 11 /* valueGenerationStrategiesSize */
            newarray 10
            astore 12 /* fieldsPreUpdateNeeded */
        start local 12 // int[] fieldsPreUpdateNeeded
         5: .line 3511
            iconst_0
            istore 13 /* i */
        start local 13 // int i
         6: goto 16
         7: .line 3512
      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.SharedSessionContractImplementor org.hibernate.tuple.InMemoryValueGenerationStrategy[] int int[] int
      StackMap stack:
            aload 10 /* valueGenerationStrategies */
            iload 13 /* i */
            aaload
            ifnull 15
            aload 10 /* valueGenerationStrategies */
            iload 13 /* i */
            aaload
            invokeinterface org.hibernate.tuple.InMemoryValueGenerationStrategy.getGenerationTiming:()Lorg/hibernate/tuple/GenerationTiming;
         8: .line 3513
            invokevirtual org.hibernate.tuple.GenerationTiming.includesUpdate:()Z
            ifeq 15
         9: .line 3514
            aload 2 /* fields */
            iload 13 /* i */
            aload 10 /* valueGenerationStrategies */
            iload 13 /* i */
            aaload
            invokeinterface org.hibernate.tuple.InMemoryValueGenerationStrategy.getValueGenerator:()Lorg/hibernate/tuple/ValueGenerator;
        10: .line 3515
            aload 9 /* session */
            checkcast org.hibernate.Session
        11: .line 3516
            aload 7 /* object */
        12: .line 3514
            invokeinterface org.hibernate.tuple.ValueGenerator.generateValue:(Lorg/hibernate/Session;Ljava/lang/Object;)Ljava/lang/Object;
            aastore
        13: .line 3518
            aload 0 /* this */
            aload 7 /* object */
            iload 13 /* i */
            aload 2 /* fields */
            iload 13 /* i */
            aaload
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValue:(Ljava/lang/Object;ILjava/lang/Object;)V
        14: .line 3519
            aload 12 /* fieldsPreUpdateNeeded */
            iload 13 /* i */
            iload 13 /* i */
            iastore
        15: .line 3511
      StackMap locals:
      StackMap stack:
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 13 /* i */
            iload 11 /* valueGenerationStrategiesSize */
            if_icmplt 7
        end local 13 // int i
        17: .line 3531
            aload 12 /* fieldsPreUpdateNeeded */
            arraylength
            ifeq 19
            aload 3 /* dirtyFields */
            ifnull 19
        18: .line 3532
            aload 12 /* fieldsPreUpdateNeeded */
            aload 3 /* dirtyFields */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.join:([I[I)[I
            astore 3 /* dirtyFields */
        end local 12 // int[] fieldsPreUpdateNeeded
        end local 11 // int valueGenerationStrategiesSize
        end local 10 // org.hibernate.tuple.InMemoryValueGenerationStrategy[] valueGenerationStrategies
        19: .line 3540
      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.SharedSessionContractImplementor
      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
        20: .line 3541
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableSpan:()I
            istore 11 /* span */
        start local 11 // int span
        21: .line 3545
            aload 9 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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
        22: .line 3549
            aload 14 /* entry */
            ifnonnull 24
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isMutable:()Z
            ifne 24
        23: .line 3550
            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
        24: .line 3552
      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.SharedSessionContractImplementor 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 38
            aload 3 /* dirtyFields */
            ifnull 38
        25: .line 3554
            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
        26: .line 3556
            iload 11 /* span */
            anewarray java.lang.String
            astore 13 /* updateStrings */
        start local 13 // java.lang.String[] updateStrings
        27: .line 3557
            iconst_0
            istore 15 /* j */
        start local 15 // int j
        28: goto 36
        29: .line 3558
      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.SharedSessionContractImplementor 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 33
        30: .line 3559
            aload 0 /* this */
            aload 12 /* propsToUpdate */
            iload 15 /* j */
            aload 5 /* oldFields */
            iload 15 /* j */
            ifne 31
            aload 8 /* rowId */
            ifnull 31
            iconst_1
            goto 32
      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.SharedSessionContractImplementor 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[]
        31: 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.SharedSessionContractImplementor 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
        32: invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateUpdateString:([ZI[Ljava/lang/Object;Z)Ljava/lang/String;
            goto 34
        33: .line 3560
      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.SharedSessionContractImplementor boolean[] int boolean[] java.lang.String[] org.hibernate.engine.spi.EntityEntry int
      StackMap stack: java.lang.String[] int
            aconst_null
        34: .line 3558
      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.SharedSessionContractImplementor boolean[] int boolean[] java.lang.String[] org.hibernate.engine.spi.EntityEntry int
      StackMap stack: java.lang.String[] int java.lang.String
            aastore
        35: .line 3557
            iinc 15 /* j */ 1
      StackMap locals:
      StackMap stack:
        36: iload 15 /* j */
            iload 11 /* span */
            if_icmplt 29
        end local 15 // int j
        37: .line 3562
            goto 62
        end local 13 // java.lang.String[] updateStrings
        end local 12 // boolean[] propsToUpdate
        38: .line 3563
      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.SharedSessionContractImplementor 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 56
        39: .line 3571
            aload 0 /* this */
        40: .line 3572
            aload 3 /* dirtyFields */
            ifnonnull 41
            getstatic org.hibernate.internal.util.collections.ArrayHelper.EMPTY_INT_ARRAY:[I
            goto 42
      StackMap locals:
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister
        41: aload 3 /* dirtyFields */
        42: .line 3573
      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.SharedSessionContractImplementor boolean[] int top top org.hibernate.engine.spi.EntityEntry
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister int[]
            iload 4 /* hasDirtyCollection */
        43: .line 3571
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertiesToUpdate:([IZ)[Z
            astore 12 /* propsToUpdate */
        start local 12 // boolean[] propsToUpdate
        44: .line 3576
            iload 11 /* span */
            anewarray java.lang.String
            astore 13 /* updateStrings */
        start local 13 // java.lang.String[] updateStrings
        45: .line 3577
            iconst_0
            istore 15 /* j */
        start local 15 // int j
        46: goto 54
        47: .line 3578
      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.SharedSessionContractImplementor 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 51
        48: .line 3579
            aload 0 /* this */
            aload 12 /* propsToUpdate */
            iload 15 /* j */
            aload 5 /* oldFields */
            iload 15 /* j */
            ifne 49
            aload 8 /* rowId */
            ifnull 49
            iconst_1
            goto 50
      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.SharedSessionContractImplementor 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[]
        49: 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.SharedSessionContractImplementor 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
        50: invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateUpdateString:([ZI[Ljava/lang/Object;Z)Ljava/lang/String;
            goto 52
        51: .line 3580
      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.SharedSessionContractImplementor boolean[] int boolean[] java.lang.String[] org.hibernate.engine.spi.EntityEntry int
      StackMap stack: java.lang.String[] int
            aconst_null
        52: .line 3578
      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.SharedSessionContractImplementor boolean[] int boolean[] java.lang.String[] org.hibernate.engine.spi.EntityEntry int
      StackMap stack: java.lang.String[] int java.lang.String
            aastore
        53: .line 3577
            iinc 15 /* j */ 1
      StackMap locals:
      StackMap stack:
        54: iload 15 /* j */
            iload 11 /* span */
            if_icmplt 47
        end local 15 // int j
        55: .line 3582
            goto 62
        end local 13 // java.lang.String[] updateStrings
        end local 12 // boolean[] propsToUpdate
        56: .line 3585
      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.SharedSessionContractImplementor boolean[] int top top org.hibernate.engine.spi.EntityEntry
      StackMap stack:
            aload 0 /* this */
        57: .line 3586
            aload 8 /* rowId */
            ifnull 58
            iconst_1
            goto 59
      StackMap locals:
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister
        58: iconst_0
        59: .line 3587
      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.SharedSessionContractImplementor 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
        60: .line 3585
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getUpdateStrings:(ZZ)[Ljava/lang/String;
            astore 13 /* updateStrings */
        start local 13 // java.lang.String[] updateStrings
        61: .line 3589
            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
        62: .line 3592
      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.SharedSessionContractImplementor boolean[] int boolean[] java.lang.String[] org.hibernate.engine.spi.EntityEntry
      StackMap stack:
            iconst_0
            istore 15 /* j */
        start local 15 // int j
        63: goto 79
        64: .line 3594
      StackMap locals: int
      StackMap stack:
            aload 10 /* tableUpdateNeeded */
            iload 15 /* j */
            baload
            ifeq 78
        65: .line 3595
            aload 0 /* this */
        66: .line 3596
            aload 1 /* id */
        67: .line 3597
            aload 2 /* fields */
        68: .line 3598
            aload 5 /* oldFields */
        69: .line 3599
            iload 15 /* j */
            ifne 70
            aload 8 /* rowId */
            goto 71
      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.SharedSessionContractImplementor 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[]
        70: aconst_null
        71: .line 3600
      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.SharedSessionContractImplementor 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 */
        72: .line 3601
            iload 15 /* j */
        73: .line 3602
            aload 6 /* oldVersion */
        74: .line 3603
            aload 7 /* object */
        75: .line 3604
            aload 13 /* updateStrings */
            iload 15 /* j */
            aaload
        76: .line 3605
            aload 9 /* session */
        77: .line 3595
            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/SharedSessionContractImplementor;)V
        78: .line 3592
      StackMap locals:
      StackMap stack:
            iinc 15 /* j */ 1
      StackMap locals:
      StackMap stack:
        79: iload 15 /* j */
            iload 11 /* span */
            if_icmplt 64
        end local 15 // int j
        80: .line 3609
            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.SharedSessionContractImplementor 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   81     0                           this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   81     1                             id  Ljava/io/Serializable;
            0   81     2                         fields  [Ljava/lang/Object;
            0   81     3                    dirtyFields  [I
            0   81     4             hasDirtyCollection  Z
            0   81     5                      oldFields  [Ljava/lang/Object;
            0   81     6                     oldVersion  Ljava/lang/Object;
            0   81     7                         object  Ljava/lang/Object;
            0   81     8                          rowId  Ljava/lang/Object;
            0   81     9                        session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            2   19    10      valueGenerationStrategies  [Lorg/hibernate/tuple/InMemoryValueGenerationStrategy;
            3   19    11  valueGenerationStrategiesSize  I
            5   19    12          fieldsPreUpdateNeeded  [I
            6   17    13                              i  I
           20   81    10              tableUpdateNeeded  [Z
           21   81    11                           span  I
           26   38    12                  propsToUpdate  [Z
           44   56    12                  propsToUpdate  [Z
           62   81    12                  propsToUpdate  [Z
           27   38    13                  updateStrings  [Ljava/lang/String;
           45   56    13                  updateStrings  [Ljava/lang/String;
           61   81    13                  updateStrings  [Ljava/lang/String;
           22   81    14                          entry  Lorg/hibernate/engine/spi/EntityEntry;
           28   37    15                              j  I
           46   55    15                              j  I
           63   80    15                              j  I
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                    Name  Flags
      id                  final
      fields              final
      dirtyFields         
      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.SharedSessionContractImplementor);
    descriptor: ([Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 3614
            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/SharedSessionContractImplementor;)V
         1: .line 3616
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableSpan:()I
            istore 4 /* span */
        start local 4 // int span
         2: .line 3618
            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 3620
            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 3621
            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/SharedSessionContractImplementor;)Ljava/io/Serializable;
            astore 5 /* id */
        start local 5 // java.io.Serializable id
         5: .line 3622
            iconst_1
            istore 7 /* j */
        start local 7 // int j
         6: goto 9
         7: .line 3623
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.Object[] java.lang.Object org.hibernate.engine.spi.SharedSessionContractImplementor 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/SharedSessionContractImplementor;)V
         8: .line 3622
            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 3625
            goto 17
        end local 5 // java.io.Serializable id
        11: .line 3628
      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/SharedSessionContractImplementor;)Ljava/io/Serializable;
            astore 5 /* id */
        start local 5 // java.io.Serializable id
        12: .line 3629
            iconst_1
            istore 6 /* j */
        start local 6 // int j
        13: goto 16
        14: .line 3630
      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/SharedSessionContractImplementor;)V
        15: .line 3629
            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 3633
      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.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
            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.SharedSessionContractImplementor);
    descriptor: (Ljava/io/Serializable;[Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 3638
            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/SharedSessionContractImplementor;)V
         1: .line 3640
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableSpan:()I
            istore 5 /* span */
        start local 5 // int span
         2: .line 3641
            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 3643
            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 3644
            iconst_0
            istore 7 /* j */
        start local 7 // int j
         5: goto 8
         6: .line 3645
      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/SharedSessionContractImplementor;)V
         7: .line 3644
            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 3647
            goto 15
        10: .line 3650
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* j */
        start local 6 // int j
        11: goto 14
        12: .line 3651
      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/SharedSessionContractImplementor;)V
        13: .line 3650
            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 3654
      StackMap locals:
      StackMap stack:
            return
        end local 5 // int span
        end local 4 // org.hibernate.engine.spi.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
            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.SharedSessionContractImplementor);
    descriptor: ([Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 3657
            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 3658
            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 3659
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 8
         4: .line 3660
      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 3661
            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 3662
            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 3659
      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 3666
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
            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.SharedSessionContractImplementor);
    descriptor: (Ljava/io/Serializable;Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 3673
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableSpan:()I
            istore 5 /* span */
        start local 5 // int span
         1: .line 3674
            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 3675
            aconst_null
            astore 7 /* loadedState */
        start local 7 // java.lang.Object[] loadedState
         5: .line 3676
            iload 6 /* isImpliedOptimisticLocking */
            ifeq 11
         6: .line 3681
            aload 4 /* session */
            aload 1 /* id */
            aload 0 /* this */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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 3682
            aload 4 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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 3683
            aload 9 /* entity */
            ifnull 11
         9: .line 3684
            aload 4 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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 3685
            aload 10 /* entry */
            invokeinterface 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 3690
      StackMap locals: int java.lang.Object[]
      StackMap stack:
            iload 6 /* isImpliedOptimisticLocking */
            ifeq 14
            aload 7 /* loadedState */
            ifnull 14
        12: .line 3692
            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 3693
            goto 15
        end local 8 // java.lang.String[] deleteStrings
        14: .line 3696
      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 3699
      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 3700
      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/SharedSessionContractImplementor;[Ljava/lang/Object;)V
        18: .line 3699
            iinc 9 /* j */ -1
      StackMap locals:
      StackMap stack:
        19: iload 9 /* j */
            ifge 17
        end local 9 // int j
        20: .line 3703
            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.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
            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 3706
            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 3707
            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 3706
            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 3711
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableSpan:()I
            istore 2 /* span */
        start local 2 // int span
         1: .line 3712
            iload 2 /* span */
            anewarray java.lang.String
            astore 3 /* deleteStrings */
        start local 3 // java.lang.String[] deleteStrings
         2: .line 3713
            iload 2 /* span */
            iconst_1
            isub
            istore 4 /* j */
        start local 4 // int j
         3: goto 29
         4: .line 3714
      StackMap locals: int java.lang.String[] int
      StackMap stack:
            new org.hibernate.sql.Delete
            dup
            invokespecial org.hibernate.sql.Delete.<init>:()V
         5: .line 3715
            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 3716
            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 3714
            astore 5 /* delete */
        start local 5 // org.hibernate.sql.Delete delete
         8: .line 3717
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isCommentsEnabled:()Z
            ifeq 10
         9: .line 3718
            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 3721
      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 3722
            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 3723
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        13: goto 26
        14: .line 3724
      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 3727
            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 3728
            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 3729
            iconst_0
            istore 11 /* k */
        start local 11 // int k
        18: goto 24
        19: .line 3730
      StackMap locals: java.lang.String[] boolean[] int
      StackMap stack:
            aload 10 /* propertyNullness */
            iload 11 /* k */
            baload
            ifeq 22
        20: .line 3731
            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 3732
            goto 23
        22: .line 3734
      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 3729
      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 3723
      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 3739
            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 3713
            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 3741
            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=3, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 3745
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isDebugEnabled:()Z
            ifeq 27
         1: .line 3746
            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 3747
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlLazySelectStringsByFetchGroup:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 2
            goto 5
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister top java.util.Iterator
      StackMap stack:
         3: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 1 /* entry */
        start local 1 // java.util.Map$Entry entry
         4: .line 3748
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc " Lazy select (%s) : %s"
            aload 1 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            aload 1 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 1 // java.util.Map$Entry entry
         5: .line 3747
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 3750
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlVersionSelectString:Ljava/lang/String;
            ifnull 8
         7: .line 3751
            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
         8: .line 3753
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlSnapshotSelectString:Ljava/lang/String;
            ifnull 10
         9: .line 3754
            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
        10: .line 3756
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* j */
        start local 1 // int j
        11: goto 16
        12: .line 3757
      StackMap locals: int
      StackMap stack:
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc " Insert %s: %s"
            iload 1 /* j */
            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;ILjava/lang/Object;)V
        13: .line 3758
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc " Update %s: %s"
            iload 1 /* j */
            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;ILjava/lang/Object;)V
        14: .line 3759
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc " Delete %s: %s"
            iload 1 /* j */
            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;ILjava/lang/Object;)V
        15: .line 3756
            iinc 1 /* j */ 1
      StackMap locals:
      StackMap stack:
        16: iload 1 /* j */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableSpan:()I
            if_icmplt 12
        end local 1 // int j
        17: .line 3761
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlIdentityInsertString:Ljava/lang/String;
            ifnull 19
        18: .line 3762
            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
        19: .line 3764
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlUpdateByRowIdString:Ljava/lang/String;
            ifnull 21
        20: .line 3765
            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
        21: .line 3767
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlLazyUpdateByRowIdString:Ljava/lang/String;
            ifnull 23
        22: .line 3768
            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
        23: .line 3770
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlInsertGeneratedValuesSelectString:Ljava/lang/String;
            ifnull 25
        24: .line 3771
            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
        25: .line 3773
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlUpdateGeneratedValuesSelectString:Ljava/lang/String;
            ifnull 27
        26: .line 3774
            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
        27: .line 3777
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   28     0   this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            4    5     1  entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
           11   17     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 3781
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* sessionFilterFragment */
        start local 3 // java.lang.StringBuilder sessionFilterFragment
         1: .line 3782
            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 3783
            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 3788
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 4 /* sessionFilterFragment */
        start local 4 // java.lang.StringBuilder sessionFilterFragment
         1: .line 3789
            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 3790
            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 3794
            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 3798
            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 3803
            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 3809
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassTableSpan:()I
            iconst_1
            if_icmpne 2
         1: .line 3810
            ldc ""
            goto 9
         2: .line 3811
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
         3: .line 3812
            aload 1 /* alias */
         4: .line 3813
            iload 2 /* innerJoin */
         5: .line 3814
            iload 3 /* includeSubclasses */
         6: .line 3815
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
         7: .line 3811
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createJoin:(Ljava/lang/String;ZZLjava/util/Set;)Lorg/hibernate/sql/JoinFragment;
         8: .line 3816
            invokevirtual org.hibernate.sql.JoinFragment.toFromFragmentString:()Ljava/lang/String;
         9: .line 3809
      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   10     0               this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   10     1              alias  Ljava/lang/String;
            0   10     2          innerJoin  Z
            0   10     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 3826
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassTableSpan:()I
            iconst_1
            if_icmpne 2
         1: .line 3827
            ldc ""
            goto 3
         2: .line 3828
      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 3826
      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 3834
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassTableSpan:()I
            iconst_1
            if_icmpne 2
         1: .line 3835
            ldc ""
            goto 9
         2: .line 3836
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
         3: .line 3837
            aload 1 /* alias */
         4: .line 3838
            iload 2 /* innerJoin */
         5: .line 3839
            iload 3 /* includeSubclasses */
         6: .line 3840
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
         7: .line 3836
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createJoin:(Ljava/lang/String;ZZLjava/util/Set;)Lorg/hibernate/sql/JoinFragment;
         8: .line 3841
            invokevirtual org.hibernate.sql.JoinFragment.toWhereFragmentString:()Ljava/lang/String;
         9: .line 3834
      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   10     0               this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   10     1              alias  Ljava/lang/String;
            0   10     2          innerJoin  Z
            0   10     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 3851
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassTableSpan:()I
            iconst_1
            if_icmpne 2
         1: .line 3852
            ldc ""
            goto 3
         2: .line 3853
      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 3851
      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 3857
            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 3866
            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 3867
            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 3868
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassTableSpan:()I
            istore 7 /* tableSpan */
        start local 7 // int tableSpan
         3: .line 3870
            iconst_1
            istore 8 /* j */
        start local 8 // int j
         4: goto 20
         5: .line 3871
      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 3872
            iload 8 /* j */
         7: .line 3873
            iload 2 /* innerJoin */
         8: .line 3874
            iload 3 /* includeSubclasses */
         9: .line 3875
            aload 4 /* treatAsDeclarations */
        10: .line 3871
            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 3878
            aload 9 /* joinType */
            ifnull 19
            aload 9 /* joinType */
            getstatic org.hibernate.sql.JoinType.NONE:Lorg/hibernate/sql/JoinType;
            if_acmpeq 19
        12: .line 3879
            aload 6 /* join */
        13: .line 3880
            aload 0 /* this */
            iload 8 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassTableName:(I)Ljava/lang/String;
        14: .line 3881
            aload 1 /* name */
            iload 8 /* j */
            invokestatic org.hibernate.persister.entity.AbstractEntityPersister.generateTableAlias:(Ljava/lang/String;I)Ljava/lang/String;
        15: .line 3882
            aload 5 /* idCols */
        16: .line 3883
            aload 0 /* this */
            iload 8 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassTableKeyColumns:(I)[Ljava/lang/String;
        17: .line 3884
            aload 9 /* joinType */
        18: .line 3879
            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 3870
      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 3888
            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 3897
            aload 0 /* this */
            iload 1 /* subclassTableNumber */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isClassOrSuperclassTable:(I)Z
            ifeq 10
         1: .line 3898
            iload 2 /* canInnerJoin */
            ifeq 5
         2: .line 3899
            aload 0 /* this */
            iload 1 /* subclassTableNumber */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isInverseTable:(I)Z
            ifne 5
         3: .line 3900
            aload 0 /* this */
            iload 1 /* subclassTableNumber */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isNullableTable:(I)Z
            ifne 5
         4: .line 3898
            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 3903
            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 3912
      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 3913
            getstatic org.hibernate.sql.JoinType.INNER_JOIN:Lorg/hibernate/sql/JoinType;
            areturn
        12: .line 3916
      StackMap locals:
      StackMap stack:
            iload 3 /* includeSubclasses */
            ifeq 16
        13: .line 3917
            aload 0 /* this */
            iload 1 /* subclassTableNumber */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isSubclassTableSequentialSelect:(I)Z
            ifne 16
        14: .line 3918
            aload 0 /* this */
            iload 1 /* subclassTableNumber */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isSubclassTableLazy:(I)Z
            ifne 16
        15: .line 3919
            getstatic org.hibernate.sql.JoinType.LEFT_OUTER_JOIN:Lorg/hibernate/sql/JoinType;
            areturn
        16: .line 3922
      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 3928
            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 3933
            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 3934
            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 3936
            iconst_1
            istore 5 /* i */
        start local 5 // int i
         3: goto 15
         4: .line 3937
      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 3938
            aload 4 /* jf */
         6: .line 3939
            aload 0 /* this */
            iload 6 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassTableName:(I)Ljava/lang/String;
         7: .line 3940
            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;
         8: .line 3941
            aload 3 /* keyCols */
         9: .line 3942
            aload 0 /* this */
            iload 6 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassTableKeyColumns:(I)[Ljava/lang/String;
        10: .line 3943
            aload 0 /* this */
            iload 6 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isInverseSubclassTable:(I)Z
            ifne 11
            aload 0 /* this */
            iload 6 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isNullableSubclassTable:(I)Z
            ifeq 12
        11: .line 3944
      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 13
        12: .line 3945
      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;
        13: .line 3938
      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
        14: .line 3936
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 5 /* i */
            aload 1 /* tableNumbers */
            arraylength
            if_icmplt 4
        end local 5 // int i
        16: .line 3948
            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   17     0          this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   17     1  tableNumbers  [I
            0   17     2  drivingAlias  Ljava/lang/String;
            1   17     3       keyCols  [Ljava/lang/String;
            2   17     4            jf  Lorg/hibernate/sql/JoinFragment;
            3   16     5             i  I
            5   14     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 3955
            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 3957
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassColumnTableNumberClosure:()[I
            astore 4 /* columnTableNumbers */
        start local 4 // int[] columnTableNumbers
         2: .line 3958
            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 3959
            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 3960
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         5: goto 15
         6: .line 3961
      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 3962
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.subclassColumnSelectableClosure:[Z
            iload 8 /* columnNumber */
            baload
            ifeq 14
         8: .line 3963
            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 3964
            aload 3 /* selectFragment */
        10: .line 3965
            aload 9 /* subalias */
        11: .line 3966
            aload 6 /* columnReaderTemplates */
            iload 8 /* columnNumber */
            aaload
        12: .line 3967
            aload 5 /* columnAliases */
            iload 8 /* columnNumber */
            aaload
        13: .line 3964
            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
        14: .line 3960
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 7 /* i */
            aload 1 /* subclassColumnNumbers */
            arraylength
            if_icmplt 6
        end local 7 // int i
        16: .line 3972
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassFormulaTableNumberClosure:()[I
            astore 7 /* formulaTableNumbers */
        start local 7 // int[] formulaTableNumbers
        17: .line 3973
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassFormulaTemplateClosure:()[Ljava/lang/String;
            astore 8 /* formulaTemplates */
        start local 8 // java.lang.String[] formulaTemplates
        18: .line 3974
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassFormulaAliasClosure:()[Ljava/lang/String;
            astore 9 /* formulaAliases */
        start local 9 // java.lang.String[] formulaAliases
        19: .line 3975
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        20: goto 25
        21: .line 3976
      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
        22: .line 3977
            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
        23: .line 3978
            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
        24: .line 3975
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 10 /* i */
            aload 2 /* subclassFormulaNumbers */
            arraylength
            if_icmplt 21
        end local 10 // int i
        26: .line 3981
            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   27     0                    this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   27     1   subclassColumnNumbers  [I
            0   27     2  subclassFormulaNumbers  [I
            1   27     3          selectFragment  Lorg/hibernate/sql/SelectFragment;
            2   27     4      columnTableNumbers  [I
            3   27     5           columnAliases  [Ljava/lang/String;
            4   27     6   columnReaderTemplates  [Ljava/lang/String;
            5   16     7                       i  I
            7   14     8            columnNumber  I
            9   14     9                subalias  Ljava/lang/String;
           17   27     7     formulaTableNumbers  [I
           18   27     8        formulaTemplates  [Ljava/lang/String;
           19   27     9          formulaAliases  [Ljava/lang/String;
           20   26    10                       i  I
           22   24    11           formulaNumber  I
           23   24    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 3985
            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 3990
            new java.lang.StringBuilder
            dup
         1: .line 3991
            ldc "=? and "
         2: .line 3992
            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;
         3: .line 3990
            invokestatic java.lang.String.join:(Ljava/lang/CharSequence;[Ljava/lang/CharSequence;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         4: .line 3993
            ldc "=?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 3990
            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    6     0         this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    6     1  tableNumber  I
            0    6     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 4001
            aload 1 /* tableNumbers */
            invokestatic java.util.Arrays.sort:([I)V
         1: .line 4004
            aload 1 /* tableNumbers */
            iconst_0
            iaload
            istore 4 /* drivingTable */
        start local 4 // int drivingTable
         2: .line 4006
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getRootAlias:()Ljava/lang/String;
         3: .line 4007
            iload 4 /* drivingTable */
         4: .line 4005
            invokestatic org.hibernate.persister.entity.AbstractEntityPersister.generateTableAlias:(Ljava/lang/String;I)Ljava/lang/String;
            astore 5 /* drivingAlias */
        start local 5 // java.lang.String drivingAlias
         5: .line 4009
            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
         6: .line 4010
            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
         7: .line 4013
            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
         8: .line 4016
            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
         9: .line 4019
            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
        10: .line 4020
            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
        11: .line 4021
            aload 10 /* select */
            aload 7 /* from */
            invokevirtual org.hibernate.sql.Select.setFromClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
            pop
        12: .line 4022
            aload 10 /* select */
            aload 6 /* where */
            invokevirtual org.hibernate.sql.Select.setWhereClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
            pop
        13: .line 4023
            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
        14: .line 4024
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isCommentsEnabled:()Z
            ifeq 16
        15: .line 4025
            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
        16: .line 4027
      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   17     0            this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   17     1    tableNumbers  [I
            0   17     2   columnNumbers  [I
            0   17     3  formulaNumbers  [I
            2   17     4    drivingTable  I
            5   17     5    drivingAlias  Ljava/lang/String;
            6   17     6           where  Ljava/lang/String;
            7   17     7            from  Ljava/lang/String;
            8   17     8              jf  Lorg/hibernate/sql/JoinFragment;
            9   17     9  selectFragment  Lorg/hibernate/sql/SelectFragment;
           10   17    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 4031
            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 4044
            aload 0 /* this */
            aload 1 /* mapping */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.initPropertyPaths:(Lorg/hibernate/engine/spi/Mapping;)V
         1: .line 4047
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.prepareEntityIdentifierDefinition:()V
         2: .line 4048
            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 4052
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getTableSpan:()I
            istore 1 /* joinSpan */
        start local 1 // int joinSpan
         1: .line 4053
            aload 0 /* this */
            iload 1 /* joinSpan */
            anewarray java.lang.String
            putfield org.hibernate.persister.entity.AbstractEntityPersister.sqlDeleteStrings:[Ljava/lang/String;
         2: .line 4054
            aload 0 /* this */
            iload 1 /* joinSpan */
            anewarray java.lang.String
            putfield org.hibernate.persister.entity.AbstractEntityPersister.sqlInsertStrings:[Ljava/lang/String;
         3: .line 4055
            aload 0 /* this */
            iload 1 /* joinSpan */
            anewarray java.lang.String
            putfield org.hibernate.persister.entity.AbstractEntityPersister.sqlUpdateStrings:[Ljava/lang/String;
         4: .line 4056
            aload 0 /* this */
            iload 1 /* joinSpan */
            anewarray java.lang.String
            putfield org.hibernate.persister.entity.AbstractEntityPersister.sqlLazyUpdateStrings:[Ljava/lang/String;
         5: .line 4058
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.rowIdName:Ljava/lang/String;
            ifnonnull 7
         6: .line 4059
            aconst_null
            goto 8
         7: .line 4060
      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 4058
      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 4061
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.rowIdName:Ljava/lang/String;
            ifnonnull 11
        10: .line 4062
            aconst_null
            goto 12
        11: .line 4063
      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 4061
      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 4065
            iconst_0
            istore 2 /* j */
        start local 2 // int j
        14: goto 32
        15: .line 4066
      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 4067
            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 4068
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int int
      StackMap stack: java.lang.String[] int
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.customSQLInsert:[Ljava/lang/String;
            iload 2 /* j */
            aaload
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.substituteBrackets:(Ljava/lang/String;)Ljava/lang/String;
        18: .line 4066
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int int
      StackMap stack: java.lang.String[] int java.lang.String
            aastore
        19: .line 4069
            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 4070
            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 4071
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int int
      StackMap stack: java.lang.String[] int
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.customSQLUpdate:[Ljava/lang/String;
            iload 2 /* j */
            aaload
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.substituteBrackets:(Ljava/lang/String;)Ljava/lang/String;
        22: .line 4069
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int int
      StackMap stack: java.lang.String[] int java.lang.String
            aastore
        23: .line 4072
            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 4073
            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 4074
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int int
      StackMap stack: java.lang.String[] int
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.customSQLUpdate:[Ljava/lang/String;
            iload 2 /* j */
            aaload
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.substituteBrackets:(Ljava/lang/String;)Ljava/lang/String;
        26: .line 4072
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int int
      StackMap stack: java.lang.String[] int java.lang.String
            aastore
        27: .line 4075
            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 4076
            aload 0 /* this */
            iload 2 /* j */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateDeleteString:(I)Ljava/lang/String;
            goto 30
        29: .line 4077
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int int
      StackMap stack: java.lang.String[] int
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.customSQLDelete:[Ljava/lang/String;
            iload 2 /* j */
            aaload
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.substituteBrackets:(Ljava/lang/String;)Ljava/lang/String;
        30: .line 4075
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister int int
      StackMap stack: java.lang.String[] int java.lang.String
            aastore
        31: .line 4065
            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 4080
            aload 0 /* this */
            iload 1 /* joinSpan */
            newarray 4
            putfield org.hibernate.persister.entity.AbstractEntityPersister.tableHasColumns:[Z
        34: .line 4081
            iconst_0
            istore 2 /* j */
        start local 2 // int j
        35: goto 40
        36: .line 4082
      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 4081
            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 4086
            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 4087
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.generateLazySelectStringsByFetchGroup:()Ljava/util/Map;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.sqlLazySelectStringsByFetchGroup:Ljava/util/Map;
        43: .line 4088
            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 4089
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasInsertGeneratedProperties:()Z
            ifeq 46
        45: .line 4090
            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 4092
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasUpdateGeneratedProperties:()Z
            ifeq 48
        47: .line 4093
            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 4095
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isIdentifierAssignedByInsert:()Z
            ifeq 57
        49: .line 4096
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifierGenerator:()Lorg/hibernate/id/IdentifierGenerator;
            checkcast org.hibernate.id.PostInsertIdentifierGenerator
        50: .line 4097
            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 4096
            putfield org.hibernate.persister.entity.AbstractEntityPersister.identityDelegate:Lorg/hibernate/id/insert/InsertGeneratedIdentifierDelegate;
        52: .line 4098
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.customSQLInsert:[Ljava/lang/String;
            iconst_0
            aaload
            ifnonnull 54
        53: .line 4099
            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 4100
      StackMap locals:
      StackMap stack: org.hibernate.persister.entity.AbstractEntityPersister
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.customSQLInsert:[Ljava/lang/String;
            iconst_0
            aaload
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.substituteBrackets:(Ljava/lang/String;)Ljava/lang/String;
        55: .line 4098
      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 4101
            goto 58
        57: .line 4103
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.hibernate.persister.entity.AbstractEntityPersister.sqlIdentityInsertString:Ljava/lang/String;
        58: .line 4106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.logStaticSQL:()V
        59: .line 4107
            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

  private java.lang.String substituteBrackets(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String sql
         0: .line 4110
            new org.hibernate.persister.entity.AbstractEntityPersister$SubstituteBracketSQLQueryParser
            dup
            aload 1 /* sql */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokespecial org.hibernate.persister.entity.AbstractEntityPersister$SubstituteBracketSQLQueryParser.<init>:(Ljava/lang/String;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister$SubstituteBracketSQLQueryParser.process:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.String sql
        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   sql  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      sql   

  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 4114
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.doLateInit:()V
         1: .line 4116
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createLoaders:()V
         2: .line 4117
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createUniqueKeyLoaders:()V
         3: .line 4118
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createQueryLoader:()V
         4: .line 4120
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.doPostInstantiate:()V
         5: .line 4121
            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 4124
            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 4133
            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;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  protected void createLoaders();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4140
            aload 0 /* this */
            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;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.noneLockLoader:Lorg/hibernate/loader/entity/UniqueEntityLoader;
         1: .line 4141
            aload 0 /* this */
            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;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.readLockLoader:Lorg/hibernate/loader/entity/UniqueEntityLoader;
         2: .line 4146
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.factory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isDelayBatchFetchLoaderCreationsEnabled:()Z
            ifne 7
         3: .line 4147
            getstatic org.hibernate.LockMode.NONE:Lorg/hibernate/LockMode;
            getstatic org.hibernate.LockMode.READ:Lorg/hibernate/LockMode;
            getstatic org.hibernate.LockMode.WRITE:Lorg/hibernate/LockMode;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;
            invokestatic java.util.EnumSet.complementOf:(Ljava/util/EnumSet;)Ljava/util/EnumSet;
            invokevirtual java.util.EnumSet.iterator:()Ljava/util/Iterator;
            astore 2
            goto 6
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister top java.util.Iterator
      StackMap stack:
         4: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.LockMode
            astore 1 /* lockMode */
        start local 1 // org.hibernate.LockMode lockMode
         5: .line 4148
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.loaders:Ljava/util/Map;
            aload 1 /* lockMode */
            aload 0 /* this */
            aload 1 /* 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
        end local 1 // org.hibernate.LockMode lockMode
         6: .line 4147
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 4155
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.loaders:Ljava/util/Map;
         8: .line 4156
            ldc "merge"
         9: .line 4157
            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
        10: .line 4155
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 4159
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.loaders:Ljava/util/Map;
        12: .line 4160
            ldc "refresh"
        13: .line 4161
            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
        14: .line 4159
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 4163
            return
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0      this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            5    6     1  lockMode  Lorg/hibernate/LockMode;

  protected final org.hibernate.loader.entity.UniqueEntityLoader getLoaderByLockMode(org.hibernate.LockMode);
    descriptor: (Lorg/hibernate/LockMode;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    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 4166
            getstatic org.hibernate.LockMode.NONE:Lorg/hibernate/LockMode;
            aload 1 /* lockMode */
            if_acmpne 2
         1: .line 4167
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.noneLockLoader:Lorg/hibernate/loader/entity/UniqueEntityLoader;
            areturn
         2: .line 4169
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.LockMode.READ:Lorg/hibernate/LockMode;
            aload 1 /* lockMode */
            if_acmpne 4
         3: .line 4170
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.readLockLoader:Lorg/hibernate/loader/entity/UniqueEntityLoader;
            areturn
         4: .line 4173
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.loaders:Ljava/util/Map;
            aload 1 /* lockMode */
            aload 0 /* this */
            invokedynamic apply(Lorg/hibernate/persister/entity/AbstractEntityPersister;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/hibernate/persister/entity/AbstractEntityPersister.generateDelayedEntityLoader(Ljava/lang/Object;)Lorg/hibernate/loader/entity/UniqueEntityLoader; (7)
                  (Ljava/lang/Object;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast org.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    5     0      this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0    5     1  lockMode  Lorg/hibernate/LockMode;
    MethodParameters:
          Name  Flags
      lockMode  

  private org.hibernate.loader.entity.UniqueEntityLoader generateDelayedEntityLoader(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=4, args_size=2
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.Object lockModeObject
         0: .line 4179
            aload 1 /* lockModeObject */
            checkcast org.hibernate.LockMode
            astore 2 /* lockMode */
        start local 2 // org.hibernate.LockMode lockMode
         1: .line 4181
            invokestatic org.hibernate.persister.entity.AbstractEntityPersister.$SWITCH_TABLE$org$hibernate$LockMode:()[I
            aload 2 /* lockMode */
            invokevirtual org.hibernate.LockMode.ordinal:()I
            iaload
            tableswitch { // 1 - 12
                    1: 2
                    2: 2
                    3: 3
                    4: 3
                    5: 3
                    6: 12
                    7: 3
                    8: 2
                    9: 2
                   10: 3
                   11: 3
                   12: 3
              default: 12
          }
         2: .line 4186
      StackMap locals: org.hibernate.LockMode
      StackMap stack:
            aload 0 /* this */
            aload 2 /* lockMode */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createEntityLoader:(Lorg/hibernate/LockMode;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
            areturn
         3: .line 4196
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getSubclassTableSpan:()I
            iconst_1
            if_icmple 7
         4: .line 4197
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasSubclasses:()Z
            ifeq 7
         5: .line 4198
            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 7
         6: .line 4196
            iconst_1
            goto 8
      StackMap locals:
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 3 /* disableForUpdate */
        start local 3 // boolean disableForUpdate
         9: .line 4200
            iload 3 /* disableForUpdate */
            ifeq 10
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.readLockLoader:Lorg/hibernate/loader/entity/UniqueEntityLoader;
            goto 11
      StackMap locals: int
      StackMap stack:
        10: aload 0 /* this */
            aload 2 /* lockMode */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.createEntityLoader:(Lorg/hibernate/LockMode;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
      StackMap locals:
      StackMap stack: org.hibernate.loader.entity.UniqueEntityLoader
        11: areturn
        end local 3 // boolean disableForUpdate
        12: .line 4203
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            getstatic java.util.Locale.ROOT:Ljava/util/Locale;
            ldc "Lock mode %1$s not supported by entity loaders."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* lockMode */
            aastore
            invokestatic java.lang.String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // org.hibernate.LockMode lockMode
        end local 1 // java.lang.Object lockModeObject
        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    lockModeObject  Ljava/lang/Object;
            1   13     2          lockMode  Lorg/hibernate/LockMode;
            9   12     3  disableForUpdate  Z
    MethodParameters:
                Name  Flags
      lockModeObject  

  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 4209
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.loaderName:Ljava/lang/String;
            ifnull 2
         1: .line 4210
            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 4212
      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.SharedSessionContractImplementor);
    descriptor: (Ljava/io/Serializable;Ljava/lang/Object;Lorg/hibernate/LockMode;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 4219
            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/SharedSessionContractImplementor;)Ljava/lang/Object;
            areturn
        end local 4 // org.hibernate.engine.spi.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
    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.SharedSessionContractImplementor);
    descriptor: (Ljava/io/Serializable;Ljava/lang/Object;Lorg/hibernate/LockOptions;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 4229
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 2
         1: .line 4230
            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 4233
      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/SharedSessionContractImplementor;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
            astore 5 /* loader */
        start local 5 // org.hibernate.loader.entity.UniqueEntityLoader loader
         3: .line 4234
            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/SharedSessionContractImplementor;Lorg/hibernate/LockOptions;)Ljava/lang/Object;
            areturn
        end local 5 // org.hibernate.loader.entity.UniqueEntityLoader loader
        end local 4 // org.hibernate.engine.spi.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
            3    4     5          loader  Lorg/hibernate/loader/entity/UniqueEntityLoader;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                Name  Flags
      id              
      optionalObject  
      lockOptions     
      session         

  public java.util.List multiLoad(java.io.Serializable[], org.hibernate.engine.spi.SharedSessionContractImplementor, org.hibernate.persister.entity.MultiLoadOptions);
    descriptor: ([Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/persister/entity/MultiLoadOptions;)Ljava/util/List;
    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.io.Serializable[] ids
        start local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        start local 3 // org.hibernate.persister.entity.MultiLoadOptions loadOptions
         0: .line 4239
            getstatic org.hibernate.loader.entity.DynamicBatchingEntityLoaderBuilder.INSTANCE:Lorg/hibernate/loader/entity/DynamicBatchingEntityLoaderBuilder;
         1: .line 4240
            aload 0 /* this */
         2: .line 4241
            aload 1 /* ids */
         3: .line 4242
            aload 2 /* session */
         4: .line 4243
            aload 3 /* loadOptions */
         5: .line 4239
            invokevirtual org.hibernate.loader.entity.DynamicBatchingEntityLoaderBuilder.multiLoad:(Lorg/hibernate/persister/entity/OuterJoinLoadable;[Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Lorg/hibernate/persister/entity/MultiLoadOptions;)Ljava/util/List;
            areturn
        end local 3 // org.hibernate.persister.entity.MultiLoadOptions loadOptions
        end local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 1 // java.io.Serializable[] ids
        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          ids  [Ljava/io/Serializable;
            0    6     2      session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            0    6     3  loadOptions  Lorg/hibernate/persister/entity/MultiLoadOptions;
    MethodParameters:
             Name  Flags
      ids          
      session      
      loadOptions  

  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 4248
            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 4249
            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.SharedSessionContractImplementor);
    descriptor: (Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 4252
            aload 1 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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.SharedSessionContractImplementor.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
         1: .line 4253
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.getLoadGraph:()Ljavax/persistence/EntityGraph;
            ifnonnull 3
         2: .line 4252
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 1 // org.hibernate.engine.spi.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
    MethodParameters:
         Name  Flags
      session  

  private boolean isAffectedByEnabledFetchProfiles(org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 4257
            aload 1 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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.SharedSessionContractImplementor 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 4258
            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 4259
            iconst_1
            ireturn
        end local 2 // java.lang.String s
         4: .line 4257
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 4262
            iconst_0
            ireturn
        end local 1 // org.hibernate.engine.spi.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
            2    4     2        s  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      session  

  private boolean isAffectedByEnabledFilters(org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 4266
            aload 1 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.hasEnabledFilters:()Z
            ifeq 3
         1: .line 4267
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.filterHelper:Lorg/hibernate/internal/FilterHelper;
            aload 1 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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 4266
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 1 // org.hibernate.engine.spi.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
    MethodParameters:
         Name  Flags
      session  

  protected org.hibernate.loader.entity.UniqueEntityLoader getAppropriateLoader(org.hibernate.LockOptions, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Lorg/hibernate/LockOptions;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
    flags: (0x0004) ACC_PROTECTED
    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.SharedSessionContractImplementor session
         0: .line 4271
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.queryLoader:Lorg/hibernate/loader/entity/UniqueEntityLoader;
            ifnull 2
         1: .line 4274
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.queryLoader:Lorg/hibernate/loader/entity/UniqueEntityLoader;
            areturn
         2: .line 4276
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* session */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isAffectedByEnabledFilters:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Z
            ifeq 4
         3: .line 4279
            aload 0 /* this */
            aload 1 /* lockOptions */
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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 4281
      StackMap locals:
      StackMap stack:
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getLoadQueryInfluencers:()Lorg/hibernate/engine/spi/LoadQueryInfluencers;
            invokevirtual org.hibernate.engine.spi.LoadQueryInfluencers.getInternalFetchProfile:()Ljava/lang/String;
            ifnull 9
            getstatic org.hibernate.LockMode.UPGRADE:Lorg/hibernate/LockMode;
         5: .line 4282
            aload 1 /* lockOptions */
            invokevirtual org.hibernate.LockOptions.getLockMode:()Lorg/hibernate/LockMode;
         6: .line 4281
            invokevirtual org.hibernate.LockMode.greaterThan:(Lorg/hibernate/LockMode;)Z
         7: .line 4283
            ifeq 9
         8: .line 4287
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.loaders:Ljava/util/Map;
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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
         9: .line 4289
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* session */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isAffectedByEnabledFetchProfiles:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Z
            ifeq 11
        10: .line 4292
            aload 0 /* this */
            aload 1 /* lockOptions */
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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
        11: .line 4294
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* session */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isAffectedByEntityGraph:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Z
            ifeq 13
        12: .line 4295
            aload 0 /* this */
            aload 1 /* lockOptions */
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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
        13: .line 4297
      StackMap locals:
      StackMap stack:
            aload 1 /* lockOptions */
            invokevirtual org.hibernate.LockOptions.getTimeOut:()I
            iconst_m1
            if_icmpeq 15
        14: .line 4298
            aload 0 /* this */
            aload 1 /* lockOptions */
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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
        15: .line 4301
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* lockOptions */
            invokevirtual org.hibernate.LockOptions.getLockMode:()Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getLoaderByLockMode:(Lorg/hibernate/LockMode;)Lorg/hibernate/loader/entity/UniqueEntityLoader;
            areturn
        end local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 1 // org.hibernate.LockOptions lockOptions
        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  lockOptions  Lorg/hibernate/LockOptions;
            0   16     2      session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
    MethodParameters:
             Name  Flags
      lockOptions  
      session      

  protected final boolean isAllNull(java.lang.Object[], int);
    descriptor: ([Ljava/lang/Object;I)Z
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    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 4306
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         1: goto 5
         2: .line 4307
      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 4308
            iconst_0
            ireturn
         4: .line 4306
      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 4311
            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 4315
            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 4323
            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 4324
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyUpdateability:()[Z
            astore 4 /* updateability */
        start local 4 // boolean[] updateability
         2: .line 4325
            iconst_0
            istore 5 /* j */
        start local 5 // int j
         3: goto 8
         4: .line 4326
      StackMap locals: boolean[] boolean[] int
      StackMap stack:
            aload 1 /* dirtyProperties */
            iload 5 /* j */
            iaload
            istore 6 /* property */
        start local 6 // int property
         5: .line 4327
            aload 4 /* updateability */
            iload 6 /* property */
            baload
            ifeq 7
         6: .line 4328
            aload 3 /* propsToUpdate */
            iload 6 /* property */
            iconst_1
            bastore
        end local 6 // int property
         7: .line 4325
      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 4331
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifeq 16
            aload 4 /* updateability */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionProperty:()I
            baload
            ifeq 16
        10: .line 4332
            aload 3 /* propsToUpdate */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getVersionProperty:()I
        11: .line 4334
            aload 1 /* dirtyProperties */
        12: .line 4335
            iload 2 /* hasDirtyCollection */
        13: .line 4336
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyVersionability:()[Z
        14: .line 4333
            invokestatic org.hibernate.engine.internal.Versioning.isVersionIncrementRequired:([IZ[Z)Z
        15: .line 4332
            bastore
        16: .line 4339
      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   17     0                this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   17     1     dirtyProperties  [I
            0   17     2  hasDirtyCollection  Z
            1   17     3       propsToUpdate  [Z
            2   17     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 4347
            aload 1 /* fields */
            arraylength
            newarray 4
            astore 2 /* notNull */
        start local 2 // boolean[] notNull
         1: .line 4348
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyInsertability:()[Z
            astore 3 /* insertable */
        start local 3 // boolean[] insertable
         2: .line 4349
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 8
         4: .line 4350
      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 4349
            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 4352
            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.SharedSessionContractImplementor);
    descriptor: ([Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)[I
    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.lang.Object[] currentState
        start local 2 // java.lang.Object[] previousState
        start local 3 // java.lang.Object entity
        start local 4 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 4370
            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 4371
            aload 1 /* currentState */
         2: .line 4372
            aload 2 /* previousState */
         3: .line 4373
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnUpdateable:[[Z
         4: .line 4374
            aload 4 /* session */
         5: .line 4369
            invokestatic org.hibernate.type.TypeHelper.findDirty:([Lorg/hibernate/tuple/NonIdentifierAttribute;[Ljava/lang/Object;[Ljava/lang/Object;[[ZLorg/hibernate/engine/spi/SharedSessionContractImplementor;)[I
            astore 5 /* props */
        start local 5 // int[] props
         6: .line 4376
            aload 5 /* props */
            ifnonnull 8
         7: .line 4377
            aconst_null
            areturn
         8: .line 4380
      StackMap locals: int[]
      StackMap stack:
            aload 0 /* this */
            aload 5 /* props */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.logDirtyProperties:([I)V
         9: .line 4381
            aload 5 /* props */
            areturn
        end local 5 // int[] props
        end local 4 // org.hibernate.engine.spi.SharedSessionContractImplementor 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   10     0           this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   10     1   currentState  [Ljava/lang/Object;
            0   10     2  previousState  [Ljava/lang/Object;
            0   10     3         entity  Ljava/lang/Object;
            0   10     4        session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            6   10     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.SharedSessionContractImplementor);
    descriptor: ([Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)[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.SharedSessionContractImplementor session
         0: .line 4400
            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 4401
            aload 2 /* current */
         2: .line 4402
            aload 1 /* old */
         3: .line 4403
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.propertyColumnUpdateable:[[Z
         4: .line 4404
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyUpdateability:()[Z
         5: .line 4405
            aload 4 /* session */
         6: .line 4399
            invokestatic org.hibernate.type.TypeHelper.findModified:([Lorg/hibernate/tuple/NonIdentifierAttribute;[Ljava/lang/Object;[Ljava/lang/Object;[[Z[ZLorg/hibernate/engine/spi/SharedSessionContractImplementor;)[I
            astore 5 /* props */
        start local 5 // int[] props
         7: .line 4407
            aload 5 /* props */
            ifnonnull 9
         8: .line 4408
            aconst_null
            areturn
         9: .line 4411
      StackMap locals: int[]
      StackMap stack:
            aload 0 /* this */
            aload 5 /* props */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.logDirtyProperties:([I)V
        10: .line 4412
            aload 5 /* props */
            areturn
        end local 5 // int[] props
        end local 4 // org.hibernate.engine.spi.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
            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 4421
            aload 0 /* this */
            aload 1 /* entity */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasUninitializedLazyProperties:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 4422
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getNonLazyPropertyUpdateability:()[Z
            goto 3
         2: .line 4423
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyUpdateability:()[Z
         3: .line 4421
      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 4427
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 7
         1: .line 4428
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 4429
      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 4430
            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 4428
            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 4433
      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 4436
            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 4440
            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 canReadFromCache();
    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 4445
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.canReadFromCache: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 canWriteToCache();
    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 4450
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.canWriteToCache: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 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 4454
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.canWriteToCache: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.cache.spi.access.EntityDataAccess getCacheAccessStrategy();
    descriptor: ()Lorg/hibernate/cache/spi/access/EntityDataAccess;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4458
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.cacheAccessStrategy:Lorg/hibernate/cache/spi/access/EntityDataAccess;
            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 4463
            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.SharedSessionContractImplementor);
    descriptor: (Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 4468
            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/SharedSessionContractImplementor;)Lorg/hibernate/cache/spi/entry/CacheEntry;
            areturn
        end local 4 // org.hibernate.engine.spi.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
    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 4472
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.naturalIdRegionAccessStrategy:Lorg/hibernate/cache/spi/access/NaturalIdDataAccess;
            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.NaturalIdDataAccess getNaturalIdCacheAccessStrategy();
    descriptor: ()Lorg/hibernate/cache/spi/access/NaturalIdDataAccess;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 4476
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.naturalIdRegionAccessStrategy:Lorg/hibernate/cache/spi/access/NaturalIdDataAccess;
            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 4480
            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 4485
            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 4489
            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 4493
            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 4497
            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 4501
            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 4505
            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 4509
            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 4513
            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 4514
            aconst_null
            goto 3
         2: .line 4515
      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 4513
      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 4519
            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 4523
            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 4527
            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 4531
            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.SharedSessionContractImplementor);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
    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 entity
        start local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 4545
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityMetamodel:()Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getBytecodeEnhancementMetadata:()Lorg/hibernate/bytecode/spi/BytecodeEnhancementMetadata;
            invokeinterface org.hibernate.bytecode.spi.BytecodeEnhancementMetadata.isEnhancedForLazyLoading:()Z
            ifeq 6
         1: .line 4546
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityMetamodel:()Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getBytecodeEnhancementMetadata:()Lorg/hibernate/bytecode/spi/BytecodeEnhancementMetadata;
            aload 1 /* entity */
            invokeinterface org.hibernate.bytecode.spi.BytecodeEnhancementMetadata.extractInterceptor:(Ljava/lang/Object;)Lorg/hibernate/bytecode/enhance/spi/interceptor/LazyAttributeLoadingInterceptor;
            astore 3 /* interceptor */
        start local 3 // org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeLoadingInterceptor interceptor
         2: .line 4547
            aload 3 /* interceptor */
            ifnonnull 5
         3: .line 4548
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityMetamodel:()Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getBytecodeEnhancementMetadata:()Lorg/hibernate/bytecode/spi/BytecodeEnhancementMetadata;
            aload 1 /* entity */
            aload 2 /* session */
            invokeinterface org.hibernate.bytecode.spi.BytecodeEnhancementMetadata.injectInterceptor:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Lorg/hibernate/bytecode/enhance/spi/interceptor/LazyAttributeLoadingInterceptor;
            pop
         4: .line 4549
            goto 6
         5: .line 4551
      StackMap locals: org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeLoadingInterceptor
      StackMap stack:
            aload 3 /* interceptor */
            aload 2 /* session */
            invokevirtual org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeLoadingInterceptor.setSession:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
        end local 3 // org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeLoadingInterceptor interceptor
         6: .line 4555
      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/SharedSessionContractImplementor;)V
         7: .line 4556
            return
        end local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 1 // java.lang.Object entity
        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       entity  Ljava/lang/Object;
            0    8     2      session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            2    6     3  interceptor  Lorg/hibernate/bytecode/enhance/spi/interceptor/LazyAttributeLoadingInterceptor;
    MethodParameters:
         Name  Flags
      entity   
      session  

  private void handleNaturalIdReattachment(java.lang.Object, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 4559
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasNaturalIdentifier:()Z
            ifne 2
         1: .line 4560
            return
         2: .line 4563
      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 4566
            return
         4: .line 4569
      StackMap locals:
      StackMap stack:
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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 4570
            aload 0 /* this */
            aload 1 /* entity */
            aload 2 /* session */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/io/Serializable;
            astore 4 /* id */
        start local 4 // java.io.Serializable id
         6: .line 4575
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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 4576
            aload 6 /* entitySnapshot */
            getstatic org.hibernate.engine.internal.StatefulPersistenceContext.NO_ROW:Ljava/lang/Object;
            if_acmpne 10
         8: .line 4577
            aconst_null
            astore 5 /* naturalIdSnapshot */
        start local 5 // java.lang.Object[] naturalIdSnapshot
         9: .line 4578
            goto 11
        end local 5 // java.lang.Object[] naturalIdSnapshot
        10: .line 4580
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.Object org.hibernate.engine.spi.SharedSessionContractImplementor 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 4583
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.Object org.hibernate.engine.spi.SharedSessionContractImplementor 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 4584
            aload 3 /* naturalIdHelper */
        13: .line 4585
            aload 0 /* this */
        14: .line 4586
            aload 4 /* id */
        15: .line 4587
            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 4588
            aload 5 /* naturalIdSnapshot */
        17: .line 4589
            getstatic org.hibernate.engine.spi.CachedNaturalIdValueSource.UPDATE:Lorg/hibernate/engine/spi/CachedNaturalIdValueSource;
        18: .line 4584
            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 4591
            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.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
            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.SharedSessionContractImplementor);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/Boolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, 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.SharedSessionContractImplementor session
         0: .line 4595
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.canExtractIdOutOfEntity:()Z
            ifeq 3
         1: .line 4596
            aload 0 /* this */
            aload 1 /* entity */
            aload 2 /* session */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/io/Serializable;
            astore 3 /* id */
        start local 3 // java.io.Serializable id
         2: .line 4597
            goto 4
        end local 3 // java.io.Serializable id
         3: .line 4599
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3 /* id */
        start local 3 // java.io.Serializable id
         4: .line 4603
      StackMap locals: java.io.Serializable
      StackMap stack:
            aload 3 /* id */
            ifnonnull 6
         5: .line 4604
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            areturn
         6: .line 4608
      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 4609
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isVersioned:()Z
            ifeq 13
         8: .line 4612
            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 4613
            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 4612
            astore 5 /* result */
        start local 5 // java.lang.Boolean result
        11: .line 4614
            aload 5 /* result */
            ifnull 13
        12: .line 4615
            aload 5 /* result */
            areturn
        end local 5 // java.lang.Boolean result
        13: .line 4620
      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 4621
            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 4620
            astore 5 /* result */
        start local 5 // java.lang.Boolean result
        16: .line 4622
            aload 5 /* result */
            ifnull 18
        17: .line 4623
            aload 5 /* result */
            areturn
        18: .line 4627
      StackMap locals: java.lang.Boolean
      StackMap stack:
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getCacheMode:()Lorg/hibernate/CacheMode;
            invokevirtual org.hibernate.CacheMode.isGetEnabled:()Z
            ifeq 24
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.canReadFromCache:()Z
            ifeq 24
        19: .line 4628
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getCacheAccessStrategy:()Lorg/hibernate/cache/spi/access/EntityDataAccess;
            astore 6 /* cache */
        start local 6 // org.hibernate.cache.spi.access.EntityDataAccess cache
        20: .line 4629
            aload 6 /* cache */
            aload 3 /* id */
            aload 0 /* this */
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getTenantIdentifier:()Ljava/lang/String;
            invokeinterface org.hibernate.cache.spi.access.EntityDataAccess.generateCacheKey:(Ljava/lang/Object;Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Ljava/lang/String;)Ljava/lang/Object;
            astore 7 /* ck */
        start local 7 // java.lang.Object ck
        21: .line 4630
            aload 2 /* session */
            aload 7 /* ck */
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getCacheAccessStrategy:()Lorg/hibernate/cache/spi/access/EntityDataAccess;
            invokestatic org.hibernate.engine.internal.CacheHelper.fromSharedCache:(Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;Lorg/hibernate/cache/spi/access/CachedDomainDataAccess;)Ljava/io/Serializable;
            astore 8 /* ce */
        start local 8 // java.lang.Object ce
        22: .line 4631
            aload 8 /* ce */
            ifnull 24
        23: .line 4632
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            areturn
        end local 8 // java.lang.Object ce
        end local 7 // java.lang.Object ck
        end local 6 // org.hibernate.cache.spi.access.EntityDataAccess cache
        24: .line 4636
      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.SharedSessionContractImplementor session
        end local 1 // java.lang.Object entity
        end local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   25     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   25     1   entity  Ljava/lang/Object;
            0   25     2  session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            2    3     3       id  Ljava/io/Serializable;
            4   25     3       id  Ljava/io/Serializable;
            7   25     4  version  Ljava/lang/Object;
           11   13     5   result  Ljava/lang/Boolean;
           16   25     5   result  Ljava/lang/Boolean;
           20   24     6    cache  Lorg/hibernate/cache/spi/access/EntityDataAccess;
           21   24     7       ck  Ljava/lang/Object;
           22   24     8       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 4640
            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 4644
            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 4648
            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;

  protected final boolean isModifiableEntity(org.hibernate.engine.spi.EntityEntry);
    descriptor: (Lorg/hibernate/engine/spi/EntityEntry;)Z
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    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 4652
            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 */
            invokeinterface 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 4656
            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 4660
            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 4665
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.isLazy:()Z
            ifeq 1
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getBytecodeEnhancementMetadata:()Lorg/hibernate/bytecode/spi/BytecodeEnhancementMetadata;
            invokeinterface org.hibernate.bytecode.spi.BytecodeEnhancementMetadata.isEnhancedForLazyLoading:()Z
            ifne 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.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 4669
            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 4673
            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 4677
            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 4681
            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 4685
            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 4689
            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 4693
            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 4697
            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 4701
            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 4705
            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 4709
            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 4713
            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 4717
            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 4721
            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 4725
            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 4740
            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 4744
            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 4748
            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 4752
            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.SharedSessionContractImplementor);
    descriptor: (Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 4756
            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/SharedSessionContractImplementor;)Ljava/lang/Object;
            areturn
        end local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
    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 4760
            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 4761
            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 4760
            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 4771
            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 4775
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getBytecodeEnhancementMetadata:()Lorg/hibernate/bytecode/spi/BytecodeEnhancementMetadata;
            invokeinterface org.hibernate.bytecode.spi.BytecodeEnhancementMetadata.isEnhancedForLazyLoading:()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 4779
            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 4783
            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 4787
            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 4791
            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, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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 entity
        start local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 4796
            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.afterInitialize:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
         1: .line 4797
            return
        end local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        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  session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
    MethodParameters:
         Name  Flags
      entity   
      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 4800
            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 4804
            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 4808
            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 4812
            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 4816
            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 4820
            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 4824
            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 4832
            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 4840
            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 4844
            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 4848
            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 4852
            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 4856
            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 4860
            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 4864
            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 4868
            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 4869
            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 4872
            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 4873
            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 4876
            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 4881
            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 4886
            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 4891
            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/SharedSessionContractImplementor;)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.SharedSessionContractImplementor);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 4896
            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/SharedSessionContractImplementor;)Ljava/io/Serializable;
            areturn
        end local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
    MethodParameters:
         Name  Flags
      entity   
      session  

  public void setIdentifier(java.lang.Object, java.io.Serializable, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Ljava/lang/Object;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 4901
            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/SharedSessionContractImplementor;)V
         1: .line 4902
            return
        end local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
    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 4906
            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.SharedSessionContractImplementor);
    descriptor: (Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 4911
            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/SharedSessionContractImplementor;)Ljava/lang/Object;
            areturn
        end local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
    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 4916
            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 4921
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getBytecodeEnhancementMetadata:()Lorg/hibernate/bytecode/spi/BytecodeEnhancementMetadata;
            aload 1 /* object */
            invokeinterface org.hibernate.bytecode.spi.BytecodeEnhancementMetadata.hasUnFetchedAttributes:(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.SharedSessionContractImplementor);
    descriptor: (Ljava/lang/Object;Ljava/io/Serializable;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 4930
            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/SharedSessionContractImplementor;)V
         1: .line 4931
            return
        end local 4 // org.hibernate.engine.spi.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
    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 4935
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasSubclasses:()Z
            ifne 2
         1: .line 4936
            aload 0 /* this */
            areturn
         2: .line 4939
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityTuplizer:()Lorg/hibernate/tuple/entity/EntityTuplizer;
         3: .line 4940
            aload 1 /* instance */
         4: .line 4941
            aload 2 /* factory */
         5: .line 4939
            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 4943
            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 4946
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            areturn
         8: .line 4949
      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 4955
            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 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 4959
            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.SharedSessionContractImplementor);
    descriptor: (Ljava/lang/Object;Ljava/util/Map;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)[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.SharedSessionContractImplementor session
         0: .line 4964
            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/SharedSessionContractImplementor;)[Ljava/lang/Object;
            areturn
        end local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
    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.SharedSessionContractImplementor);
    descriptor: (Ljava/io/Serializable;Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 4972
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasInsertGeneratedProperties:()Z
            ifne 2
         1: .line 4973
            new org.hibernate.AssertionFailure
            dup
            ldc "no insert-generated properties"
            invokespecial org.hibernate.AssertionFailure.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 4975
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
         3: .line 4976
            aload 1 /* id */
         4: .line 4977
            aload 2 /* entity */
         5: .line 4978
            aload 3 /* state */
         6: .line 4979
            aload 4 /* session */
         7: .line 4980
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlInsertGeneratedValuesSelectString:Ljava/lang/String;
         8: .line 4981
            getstatic org.hibernate.tuple.GenerationTiming.INSERT:Lorg/hibernate/tuple/GenerationTiming;
         9: .line 4975
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.processGeneratedProperties:(Ljava/io/Serializable;Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/String;Lorg/hibernate/tuple/GenerationTiming;)V
        10: .line 4983
            return
        end local 4 // org.hibernate.engine.spi.SharedSessionContractImplementor 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   11     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   11     1       id  Ljava/io/Serializable;
            0   11     2   entity  Ljava/lang/Object;
            0   11     3    state  [Ljava/lang/Object;
            0   11     4  session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
    MethodParameters:
         Name  Flags
      id       
      entity   
      state    
      session  

  public void processUpdateGeneratedProperties(java.io.Serializable, java.lang.Object, java.lang.Object[], org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Ljava/io/Serializable;Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 4990
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasUpdateGeneratedProperties:()Z
            ifne 2
         1: .line 4991
            new org.hibernate.AssertionFailure
            dup
            ldc "no update-generated properties"
            invokespecial org.hibernate.AssertionFailure.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 4993
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
         3: .line 4994
            aload 1 /* id */
         4: .line 4995
            aload 2 /* entity */
         5: .line 4996
            aload 3 /* state */
         6: .line 4997
            aload 4 /* session */
         7: .line 4998
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.sqlUpdateGeneratedValuesSelectString:Ljava/lang/String;
         8: .line 4999
            getstatic org.hibernate.tuple.GenerationTiming.ALWAYS:Lorg/hibernate/tuple/GenerationTiming;
         9: .line 4993
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.processGeneratedProperties:(Ljava/io/Serializable;Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/String;Lorg/hibernate/tuple/GenerationTiming;)V
        10: .line 5001
            return
        end local 4 // org.hibernate.engine.spi.SharedSessionContractImplementor 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   11     0     this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   11     1       id  Ljava/io/Serializable;
            0   11     2   entity  Ljava/lang/Object;
            0   11     3    state  [Ljava/lang/Object;
            0   11     4  session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
    MethodParameters:
         Name  Flags
      id       
      entity   
      state    
      session  

  private void processGeneratedProperties(java.io.Serializable, java.lang.Object, java.lang.Object[], org.hibernate.engine.spi.SharedSessionContractImplementor, java.lang.String, org.hibernate.tuple.GenerationTiming);
    descriptor: (Ljava/io/Serializable;Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/String;Lorg/hibernate/tuple/GenerationTiming;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=17, 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.SharedSessionContractImplementor session
        start local 5 // java.lang.String selectionSQL
        start local 6 // org.hibernate.tuple.GenerationTiming matchTiming
         0: .line 5011
            aload 4 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.executeBatch:()V
         1: .line 5014
            aload 4 /* session */
         2: .line 5015
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
         3: .line 5016
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
         4: .line 5017
            aload 5 /* selectionSQL */
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
         5: .line 5014
            astore 7 /* ps */
        start local 7 // java.sql.PreparedStatement ps
         6: .line 5019
            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/SharedSessionContractImplementor;)V
         7: .line 5020
            aload 4 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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 5022
            aload 8 /* rs */
            invokeinterface java.sql.ResultSet.next:()Z
            ifne 14
         9: .line 5023
            new org.hibernate.HibernateException
            dup
        10: .line 5024
            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 5025
            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 5024
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 5023
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 5028
      StackMap locals: java.sql.PreparedStatement java.sql.ResultSet
      StackMap stack:
            iconst_m1
            istore 9 /* propertyIndex */
        start local 9 // int propertyIndex
        15: .line 5029
            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 29
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object java.lang.Object[] org.hibernate.engine.spi.SharedSessionContractImplementor 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 5030
            iinc 9 /* propertyIndex */ 1
        18: .line 5031
            aload 0 /* this */
            aload 10 /* attribute */
            aload 6 /* matchTiming */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isValueGenerationRequired:(Lorg/hibernate/tuple/NonIdentifierAttribute;Lorg/hibernate/tuple/GenerationTiming;)Z
            ifeq 28
        19: .line 5032
            aload 10 /* attribute */
            invokeinterface org.hibernate.tuple.NonIdentifierAttribute.getType:()Lorg/hibernate/type/Type;
        20: .line 5033
            aload 8 /* rs */
            aload 0 /* this */
        21: .line 5034
            ldc ""
        22: .line 5035
            iload 9 /* propertyIndex */
        23: .line 5033
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyAliases:(Ljava/lang/String;I)[Ljava/lang/String;
        24: .line 5036
            aload 4 /* session */
            aload 2 /* entity */
        25: .line 5032
            invokeinterface org.hibernate.type.Type.hydrate:(Ljava/sql/ResultSet;[Ljava/lang/String;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            astore 14 /* hydratedState */
        start local 14 // java.lang.Object hydratedState
        26: .line 5038
            aload 3 /* state */
            iload 9 /* propertyIndex */
            aload 10 /* attribute */
            invokeinterface org.hibernate.tuple.NonIdentifierAttribute.getType:()Lorg/hibernate/type/Type;
            aload 14 /* hydratedState */
            aload 4 /* session */
            aload 2 /* entity */
            invokeinterface org.hibernate.type.Type.resolve:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            aastore
        27: .line 5039
            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 14 // java.lang.Object hydratedState
        end local 10 // org.hibernate.tuple.NonIdentifierAttribute attribute
        28: .line 5029
      StackMap locals:
      StackMap stack:
            iinc 11 1
      StackMap locals:
      StackMap stack:
        29: iload 11
            iload 12
            if_icmplt 16
        end local 9 // int propertyIndex
        30: .line 5050
            goto 35
        31: .line 5051
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object java.lang.Object[] org.hibernate.engine.spi.SharedSessionContractImplementor java.lang.String org.hibernate.tuple.GenerationTiming java.sql.PreparedStatement java.sql.ResultSet
      StackMap stack: java.lang.Throwable
            astore 15
        32: .line 5052
            aload 8 /* rs */
            ifnull 34
        33: .line 5053
            aload 4 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 8 /* rs */
            aload 7 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        34: .line 5055
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object java.lang.Object[] org.hibernate.engine.spi.SharedSessionContractImplementor java.lang.String org.hibernate.tuple.GenerationTiming java.sql.PreparedStatement java.sql.ResultSet top top top top top top java.lang.Throwable
      StackMap stack:
            aload 15
            athrow
        35: .line 5052
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object java.lang.Object[] org.hibernate.engine.spi.SharedSessionContractImplementor java.lang.String org.hibernate.tuple.GenerationTiming java.sql.PreparedStatement java.sql.ResultSet
      StackMap stack:
            aload 8 /* rs */
            ifnull 42
        36: .line 5053
            aload 4 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 8 /* rs */
            aload 7 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        end local 8 // java.sql.ResultSet rs
        37: .line 5056
            goto 42
        38: .line 5057
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object java.lang.Object[] org.hibernate.engine.spi.SharedSessionContractImplementor java.lang.String org.hibernate.tuple.GenerationTiming java.sql.PreparedStatement
      StackMap stack: java.lang.Throwable
            astore 16
        39: .line 5058
            aload 4 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 7 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        40: .line 5059
            aload 4 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        41: .line 5060
            aload 16
            athrow
        42: .line 5058
      StackMap locals:
      StackMap stack:
            aload 4 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 7 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        43: .line 5059
            aload 4 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        end local 7 // java.sql.PreparedStatement ps
        44: .line 5061
            goto 51
        45: .line 5062
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable java.lang.Object java.lang.Object[] org.hibernate.engine.spi.SharedSessionContractImplementor java.lang.String org.hibernate.tuple.GenerationTiming
      StackMap stack: java.sql.SQLException
            astore 7 /* e */
        start local 7 // java.sql.SQLException e
        46: .line 5063
            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;
        47: .line 5064
            aload 7 /* e */
        48: .line 5065
            ldc "unable to select generated column values"
        49: .line 5066
            aload 5 /* selectionSQL */
        50: .line 5063
            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
        51: .line 5070
      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.SharedSessionContractImplementor 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   52     0           this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   52     1             id  Ljava/io/Serializable;
            0   52     2         entity  Ljava/lang/Object;
            0   52     3          state  [Ljava/lang/Object;
            0   52     4        session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            0   52     5   selectionSQL  Ljava/lang/String;
            0   52     6    matchTiming  Lorg/hibernate/tuple/GenerationTiming;
            6   44     7             ps  Ljava/sql/PreparedStatement;
            8   37     8             rs  Ljava/sql/ResultSet;
           15   30     9  propertyIndex  I
           17   28    10      attribute  Lorg/hibernate/tuple/NonIdentifierAttribute;
           26   28    14  hydratedState  Ljava/lang/Object;
           46   51     7              e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           8    31      31  any
           6    38      38  any
           1    44      45  Class java.sql.SQLException
    MethodParameters:
              Name  Flags
      id            
      entity        
      state         
      session       
      selectionSQL  
      matchTiming   

  private boolean isValueGenerationRequired(org.hibernate.tuple.NonIdentifierAttribute, org.hibernate.tuple.GenerationTiming);
    descriptor: (Lorg/hibernate/tuple/NonIdentifierAttribute;Lorg/hibernate/tuple/GenerationTiming;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.tuple.NonIdentifierAttribute attribute
        start local 2 // org.hibernate.tuple.GenerationTiming matchTiming
         0: .line 5073
            aload 1 /* attribute */
            invokeinterface org.hibernate.tuple.NonIdentifierAttribute.getType:()Lorg/hibernate/type/Type;
            instanceof org.hibernate.type.ComponentType
            ifeq 10
         1: .line 5074
            aload 1 /* attribute */
            invokeinterface org.hibernate.tuple.NonIdentifierAttribute.getType:()Lorg/hibernate/type/Type;
            checkcast org.hibernate.type.ComponentType
            astore 3 /* type */
        start local 3 // org.hibernate.type.ComponentType type
         2: .line 5075
            aload 3 /* type */
            invokevirtual org.hibernate.type.ComponentType.getPropertyValueGenerationStrategies:()[Lorg/hibernate/tuple/ValueGeneration;
            astore 4 /* propertyValueGenerationStrategies */
        start local 4 // org.hibernate.tuple.ValueGeneration[] propertyValueGenerationStrategies
         3: .line 5076
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: goto 8
         5: .line 5077
      StackMap locals: org.hibernate.type.ComponentType org.hibernate.tuple.ValueGeneration[] int
      StackMap stack:
            aload 0 /* this */
            aload 4 /* propertyValueGenerationStrategies */
            iload 5 /* i */
            aaload
            aload 2 /* matchTiming */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isReadRequired:(Lorg/hibernate/tuple/ValueGeneration;Lorg/hibernate/tuple/GenerationTiming;)Z
            ifeq 7
         6: .line 5078
            iconst_1
            ireturn
         7: .line 5076
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 5 /* i */
            aload 4 /* propertyValueGenerationStrategies */
            arraylength
            if_icmplt 5
        end local 5 // int i
         9: .line 5081
            iconst_0
            ireturn
        end local 4 // org.hibernate.tuple.ValueGeneration[] propertyValueGenerationStrategies
        end local 3 // org.hibernate.type.ComponentType type
        10: .line 5084
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* attribute */
            invokeinterface org.hibernate.tuple.NonIdentifierAttribute.getValueGenerationStrategy:()Lorg/hibernate/tuple/ValueGeneration;
            aload 2 /* matchTiming */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isReadRequired:(Lorg/hibernate/tuple/ValueGeneration;Lorg/hibernate/tuple/GenerationTiming;)Z
            ireturn
        end local 2 // org.hibernate.tuple.GenerationTiming matchTiming
        end local 1 // org.hibernate.tuple.NonIdentifierAttribute attribute
        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                          attribute  Lorg/hibernate/tuple/NonIdentifierAttribute;
            0   11     2                        matchTiming  Lorg/hibernate/tuple/GenerationTiming;
            2   10     3                               type  Lorg/hibernate/type/ComponentType;
            3   10     4  propertyValueGenerationStrategies  [Lorg/hibernate/tuple/ValueGeneration;
            4    9     5                                  i  I
    MethodParameters:
             Name  Flags
      attribute    
      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 5092
            aload 1 /* valueGeneration */
            ifnull 4
         1: .line 5093
            aload 1 /* valueGeneration */
            invokeinterface org.hibernate.tuple.ValueGeneration.getValueGenerator:()Lorg/hibernate/tuple/ValueGenerator;
            ifnonnull 4
         2: .line 5094
            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 5092
            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 5099
            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 5100
      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 5098
      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 5104
            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 5108
            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 5112
            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 5116
            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.SharedSessionContractImplementor);
    descriptor: (Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)[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.SharedSessionContractImplementor session
         0: .line 5121
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasNaturalIdentifier:()Z
            ifne 6
         1: .line 5122
            new org.hibernate.MappingException
            dup
         2: .line 5123
            new java.lang.StringBuilder
            dup
            ldc "persistent class did not define a natural-id : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 5124
            aload 0 /* this */
         4: .line 5123
            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;
         5: .line 5122
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 5128
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 11
         7: .line 5129
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         8: .line 5130
            ldc "Getting current natural-id snapshot state for: {0}"
         9: .line 5131
            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;
        10: .line 5129
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracev:(Ljava/lang/String;Ljava/lang/Object;)V
        11: .line 5135
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getNaturalIdentifierProperties:()[I
            astore 3 /* naturalIdPropertyIndexes */
        start local 3 // int[] naturalIdPropertyIndexes
        12: .line 5136
            aload 3 /* naturalIdPropertyIndexes */
            arraylength
            istore 4 /* naturalIdPropertyCount */
        start local 4 // int naturalIdPropertyCount
        13: .line 5137
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertySpan:()I
            newarray 4
            astore 5 /* naturalIdMarkers */
        start local 5 // boolean[] naturalIdMarkers
        14: .line 5138
            iload 4 /* naturalIdPropertyCount */
            anewarray org.hibernate.type.Type
            astore 6 /* extractionTypes */
        start local 6 // org.hibernate.type.Type[] extractionTypes
        15: .line 5139
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        16: goto 20
        17: .line 5140
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable org.hibernate.engine.spi.SharedSessionContractImplementor 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
        18: .line 5141
            aload 5 /* naturalIdMarkers */
            aload 3 /* naturalIdPropertyIndexes */
            iload 7 /* i */
            iaload
            iconst_1
            bastore
        19: .line 5139
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 7 /* i */
            iload 4 /* naturalIdPropertyCount */
            if_icmplt 17
        end local 7 // int i
        21: .line 5146
            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
        22: .line 5147
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isCommentsEnabled:()Z
            ifeq 24
        23: .line 5148
            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
        24: .line 5150
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable org.hibernate.engine.spi.SharedSessionContractImplementor 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
        25: .line 5151
            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
        26: .line 5153
            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
        27: .line 5154
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
        28: .line 5157
            ldc "=? and "
        29: .line 5158
            aload 8 /* aliasedIdColumns */
        30: .line 5156
            invokestatic java.lang.String.join:(Ljava/lang/CharSequence;[Ljava/lang/CharSequence;)Ljava/lang/String;
        31: .line 5155
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        32: .line 5161
            ldc "=?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        33: .line 5162
            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;
        34: .line 5163
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        35: .line 5154
            astore 9 /* whereClause */
        start local 9 // java.lang.String whereClause
        36: .line 5165
            aload 7 /* select */
            ldc ""
            ldc ""
            invokevirtual org.hibernate.sql.Select.setOuterJoins:(Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/Select;
        37: .line 5166
            aload 9 /* whereClause */
            invokevirtual org.hibernate.sql.Select.setWhereClause:(Ljava/lang/String;)Lorg/hibernate/sql/Select;
        38: .line 5167
            invokevirtual org.hibernate.sql.Select.toStatementString:()Ljava/lang/String;
        39: .line 5165
            astore 10 /* sql */
        start local 10 // java.lang.String sql
        40: .line 5170
            iload 4 /* naturalIdPropertyCount */
            anewarray java.lang.Object
            astore 11 /* snapshot */
        start local 11 // java.lang.Object[] snapshot
        41: .line 5172
            aload 2 /* session */
        42: .line 5173
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        43: .line 5174
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
        44: .line 5175
            aload 10 /* sql */
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
        45: .line 5172
            astore 12 /* ps */
        start local 12 // java.sql.PreparedStatement ps
        46: .line 5177
            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/SharedSessionContractImplementor;)V
        47: .line 5178
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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
        48: .line 5181
            aload 13 /* rs */
            invokeinterface java.sql.ResultSet.next:()Z
            ifne 53
        49: .line 5200
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 13 /* rs */
            aload 12 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        50: .line 5204
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 12 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        51: .line 5205
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        52: .line 5182
            aconst_null
            areturn
        53: .line 5184
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable org.hibernate.engine.spi.SharedSessionContractImplementor 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.SharedSessionContractImplementor.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
        54: .line 5185
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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
        55: .line 5186
            iconst_0
            istore 16 /* i */
        start local 16 // int i
        56: goto 67
        57: .line 5187
      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
        58: .line 5188
            aload 13 /* rs */
            aload 0 /* this */
        59: .line 5189
            ldc ""
        60: .line 5190
            aload 3 /* naturalIdPropertyIndexes */
            iload 16 /* i */
            iaload
        61: .line 5188
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyAliases:(Ljava/lang/String;I)[Ljava/lang/String;
        62: .line 5191
            aload 2 /* session */
            aconst_null
        63: .line 5187
            invokeinterface org.hibernate.type.Type.hydrate:(Ljava/sql/ResultSet;[Ljava/lang/String;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            aastore
        64: .line 5193
            aload 6 /* extractionTypes */
            iload 16 /* i */
            aaload
            invokeinterface org.hibernate.type.Type.isEntityType:()Z
            ifeq 66
        65: .line 5194
            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/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            aastore
        66: .line 5186
      StackMap locals:
      StackMap stack:
            iinc 16 /* i */ 1
      StackMap locals:
      StackMap stack:
        67: iload 16 /* i */
            iload 4 /* naturalIdPropertyCount */
            if_icmplt 57
        end local 16 // int i
        68: .line 5197
            aload 11 /* snapshot */
            astore 18
        69: .line 5200
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 13 /* rs */
            aload 12 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        70: .line 5204
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 12 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        71: .line 5205
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        72: .line 5197
            aload 18
            areturn
        end local 15 // java.lang.Object owner
        end local 14 // org.hibernate.engine.spi.EntityKey key
        73: .line 5199
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable org.hibernate.engine.spi.SharedSessionContractImplementor 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
        74: .line 5200
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 13 /* rs */
            aload 12 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        75: .line 5201
            aload 17
            athrow
        end local 13 // java.sql.ResultSet rs
        76: .line 5203
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable org.hibernate.engine.spi.SharedSessionContractImplementor 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
        77: .line 5204
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 12 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        78: .line 5205
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        79: .line 5206
            aload 19
            athrow
        end local 12 // java.sql.PreparedStatement ps
        80: .line 5208
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.io.Serializable org.hibernate.engine.spi.SharedSessionContractImplementor 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
        81: .line 5209
            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 5210
            aload 12 /* e */
        83: .line 5211
            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;
        84: .line 5212
            aload 10 /* sql */
        85: .line 5209
            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.SharedSessionContractImplementor session
        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                   session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
           12   86     3  naturalIdPropertyIndexes  [I
           13   86     4    naturalIdPropertyCount  I
           14   86     5          naturalIdMarkers  [Z
           15   86     6           extractionTypes  [Lorg/hibernate/type/Type;
           16   21     7                         i  I
           22   86     7                    select  Lorg/hibernate/sql/Select;
           27   86     8          aliasedIdColumns  [Ljava/lang/String;
           36   86     9               whereClause  Ljava/lang/String;
           40   86    10                       sql  Ljava/lang/String;
           41   86    11                  snapshot  [Ljava/lang/Object;
           46   80    12                        ps  Ljava/sql/PreparedStatement;
           48   76    13                        rs  Ljava/sql/ResultSet;
           54   73    14                       key  Lorg/hibernate/engine/spi/EntityKey;
           55   73    15                     owner  Ljava/lang/Object;
           56   68    16                         i  I
           81   86    12                         e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          48    49      73  any
          53    69      73  any
          46    50      76  any
          53    70      76  any
          73    76      76  any
          41    52      80  Class java.sql.SQLException
          53    72      80  Class java.sql.SQLException
          73    80      80  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.SharedSessionContractImplementor);
    descriptor: ([Ljava/lang/Object;Lorg/hibernate/LockOptions;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)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.SharedSessionContractImplementor session
         0: .line 5222
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 6
         1: .line 5223
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         2: .line 5224
            ldc "Resolving natural-id [%s] to id : %s "
         3: .line 5225
            aload 1 /* naturalIdValues */
         4: .line 5226
            aload 0 /* this */
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;)Ljava/lang/String;
         5: .line 5223
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracef:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 5230
      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 5231
            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 5234
            aload 3 /* session */
         9: .line 5235
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
        10: .line 5236
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getStatementPreparer:()Lorg/hibernate/engine/jdbc/spi/StatementPreparer;
        11: .line 5237
            aload 5 /* sqlEntityIdByNaturalIdString */
            invokeinterface org.hibernate.engine.jdbc.spi.StatementPreparer.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
        12: .line 5234
            astore 6 /* ps */
        start local 6 // java.sql.PreparedStatement ps
        13: .line 5239
            iconst_1
            istore 7 /* positions */
        start local 7 // int positions
        14: .line 5240
            iconst_0
            istore 8 /* loop */
        start local 8 // int loop
        15: .line 5241
            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.SharedSessionContractImplementor 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 5242
            aload 1 /* naturalIdValues */
            iload 8 /* loop */
            iinc 8 /* loop */ 1
            aaload
            astore 13 /* naturalIdValue */
        start local 13 // java.lang.Object naturalIdValue
        18: .line 5243
            aload 13 /* naturalIdValue */
            ifnull 22
        19: .line 5244
            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 5245
            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/SharedSessionContractImplementor;)V
        21: .line 5246
            iload 7 /* positions */
            aload 14 /* type */
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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 5241
      StackMap locals:
      StackMap stack:
            iinc 10 1
      StackMap locals:
      StackMap stack:
        23: iload 10
            iload 11
            if_icmplt 16
        24: .line 5249
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.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 5252
            aload 9 /* rs */
            invokeinterface java.sql.ResultSet.next:()Z
            ifne 30
        26: .line 5260
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 9 /* rs */
            aload 6 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        27: .line 5264
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 6 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        28: .line 5265
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        29: .line 5253
            aconst_null
            areturn
        30: .line 5256
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.Object[] org.hibernate.LockOptions org.hibernate.engine.spi.SharedSessionContractImplementor 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/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            astore 10 /* hydratedId */
        start local 10 // java.lang.Object hydratedId
        31: .line 5257
            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/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.io.Serializable
            astore 12
        32: .line 5260
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 9 /* rs */
            aload 6 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        33: .line 5264
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 6 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        34: .line 5265
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        35: .line 5257
            aload 12
            areturn
        end local 10 // java.lang.Object hydratedId
        36: .line 5259
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 11
        37: .line 5260
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 9 /* rs */
            aload 6 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/ResultSet;Ljava/sql/Statement;)V
        38: .line 5261
            aload 11
            athrow
        end local 9 // java.sql.ResultSet rs
        end local 8 // int loop
        end local 7 // int positions
        39: .line 5263
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.Object[] org.hibernate.LockOptions org.hibernate.engine.spi.SharedSessionContractImplementor boolean[] java.lang.String java.sql.PreparedStatement
      StackMap stack: java.lang.Throwable
            astore 15
        40: .line 5264
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.getResourceRegistry:()Lorg/hibernate/resource/jdbc/ResourceRegistry;
            aload 6 /* ps */
            invokeinterface org.hibernate.resource.jdbc.ResourceRegistry.release:(Ljava/sql/Statement;)V
        41: .line 5265
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcCoordinator:()Lorg/hibernate/engine/jdbc/spi/JdbcCoordinator;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcCoordinator.afterStatementExecution:()V
        42: .line 5266
            aload 15
            athrow
        end local 6 // java.sql.PreparedStatement ps
        43: .line 5268
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.Object[] org.hibernate.LockOptions org.hibernate.engine.spi.SharedSessionContractImplementor boolean[] java.lang.String
      StackMap stack: java.sql.SQLException
            astore 6 /* e */
        start local 6 // java.sql.SQLException e
        44: .line 5269
            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;
        45: .line 5270
            aload 6 /* e */
        46: .line 5272
            ldc "could not resolve natural-id [%s] to id : %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        47: .line 5273
            aload 1 /* naturalIdValues */
            aastore
            dup
            iconst_1
        48: .line 5274
            aload 0 /* this */
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;)Ljava/lang/String;
            aastore
        49: .line 5271
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        50: .line 5276
            aload 5 /* sqlEntityIdByNaturalIdString */
        51: .line 5269
            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.SharedSessionContractImplementor 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   52     0                          this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   52     1               naturalIdValues  [Ljava/lang/Object;
            0   52     2                   lockOptions  Lorg/hibernate/LockOptions;
            0   52     3                       session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            7   52     4                 valueNullness  [Z
            8   52     5  sqlEntityIdByNaturalIdString  Ljava/lang/String;
           13   43     6                            ps  Ljava/sql/PreparedStatement;
           14   39     7                     positions  I
           15   39     8                          loop  I
           17   22     9                    idPosition  I
           18   22    13                naturalIdValue  Ljava/lang/Object;
           20   22    14                          type  Lorg/hibernate/type/Type;
           25   39     9                            rs  Ljava/sql/ResultSet;
           31   36    10                    hydratedId  Ljava/lang/Object;
           44   52     6                             e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          25    26      36  any
          30    32      36  any
          13    27      39  any
          30    33      39  any
          36    39      39  any
           8    29      43  Class java.sql.SQLException
          30    35      43  Class java.sql.SQLException
          36    43      43  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 5282
            aload 1 /* naturalIdValues */
            arraylength
            newarray 4
            astore 2 /* nullness */
        start local 2 // boolean[] nullness
         1: .line 5283
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 7
         3: .line 5284
      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 5283
            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 5286
            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 5293
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.hasNaturalIdentifier:()Z
            ifne 4
         1: .line 5294
            new org.hibernate.HibernateException
            dup
         2: .line 5295
            ldc "Attempt to build natural-id -> PK resolution query for entity that does not define natural id"
         3: .line 5294
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 5300
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.isNaturalIdNonNullable:()Z
            ifeq 10
         5: .line 5301
            aload 1 /* valueNullness */
            ifnull 7
            aload 1 /* valueNullness */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.isAllFalse:([Z)Z
            ifne 7
         6: .line 5302
            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
         7: .line 5304
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.cachedPkByNonNullableNaturalIdQuery:Ljava/lang/String;
            ifnonnull 9
         8: .line 5305
            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;
         9: .line 5307
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.cachedPkByNonNullableNaturalIdQuery:Ljava/lang/String;
            areturn
        10: .line 5311
      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   11     0           this  Lorg/hibernate/persister/entity/AbstractEntityPersister;
            0   11     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 5315
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.naturalIdIsNonNullable:Ljava/lang/Boolean;
            ifnonnull 2
         1: .line 5316
            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 5318
      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 5322
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyNullability:()[Z
            astore 1 /* nullability */
        start local 1 // boolean[] nullability
         1: .line 5323
            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 5325
            aload 1 /* nullability */
            iload 2 /* position */
            baload
            ifeq 5
         4: .line 5326
            iconst_0
            ireturn
        end local 2 // int position
         5: .line 5323
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         6: iload 3
            iload 4
            if_icmplt 2
         7: .line 5330
            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 5334
            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 5335
            aload 2 /* rootPersister */
            aload 0 /* this */
            if_acmpeq 4
         2: .line 5336
            aload 2 /* rootPersister */
            instanceof org.hibernate.persister.entity.AbstractEntityPersister
            ifeq 4
         3: .line 5337
            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 5341
      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 5342
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isCommentsEnabled:()Z
            ifeq 7
         6: .line 5343
            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 5346
      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 5348
            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 5349
            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 5351
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 5 /* whereClause */
        start local 5 // java.lang.StringBuilder whereClause
        11: .line 5352
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getPropertyTableNumbers:()[I
            astore 6 /* propertyTableNumbers */
        start local 6 // int[] propertyTableNumbers
        12: .line 5353
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getNaturalIdentifierProperties:()[I
            astore 7 /* naturalIdPropertyIndexes */
        start local 7 // int[] naturalIdPropertyIndexes
        13: .line 5354
            iconst_m1
            istore 8 /* valuesIndex */
        start local 8 // int valuesIndex
        14: .line 5355
            iconst_0
            istore 9 /* propIdx */
        start local 9 // int propIdx
        15: goto 28
        16: .line 5356
      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 5357
            iload 9 /* propIdx */
            ifle 19
        18: .line 5358
            aload 5 /* whereClause */
            ldc " and "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        19: .line 5361
      StackMap locals:
      StackMap stack:
            aload 7 /* naturalIdPropertyIndexes */
            iload 9 /* propIdx */
            iaload
            istore 10 /* naturalIdIdx */
        start local 10 // int naturalIdIdx
        20: .line 5362
            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 5363
            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 5364
            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 5366
            aload 1 /* valueNullness */
            ifnull 26
            aload 1 /* valueNullness */
            iload 8 /* valuesIndex */
            baload
            ifeq 26
        24: .line 5367
            aload 5 /* whereClause */
            ldc " is null and "
            aload 13 /* aliasedPropertyColumns */
            invokestatic java.lang.String.join:(Ljava/lang/CharSequence;[Ljava/lang/CharSequence;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " is null"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        25: .line 5368
            goto 27
        26: .line 5370
      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 java.lang.String.join:(Ljava/lang/CharSequence;[Ljava/lang/CharSequence;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "=?"
            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 5355
      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 5374
            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 5376
            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 5380
            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 5381
            aload 3 /* concretePropertySelectFragment */
            ldc ", "
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 4 /* firstComma */
        start local 4 // int firstComma
         2: .line 5382
            iload 4 /* firstComma */
            ifne 4
         3: .line 5383
            aload 3 /* concretePropertySelectFragment */
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* concretePropertySelectFragment */
         4: .line 5385
      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 5389
            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 5393
            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 5394
            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 5397
            iconst_0
            istore 2 /* j */
        start local 2 // int j
         1: goto 5
         2: .line 5398
      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 5399
            iload 2 /* j */
            ireturn
         4: .line 5397
      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 5402
            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 5407
            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 5412
            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.BytecodeEnhancementMetadata getInstrumentationMetadata();
    descriptor: ()Lorg/hibernate/bytecode/spi/BytecodeEnhancementMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 5417
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityMetamodel:Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getBytecodeEnhancementMetadata:()Lorg/hibernate/bytecode/spi/BytecodeEnhancementMetadata;
            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 5422
            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 5426
            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  

  protected java.lang.String determineTableName(org.hibernate.mapping.Table, org.hibernate.engine.jdbc.env.spi.JdbcEnvironment);
    descriptor: (Lorg/hibernate/mapping/Table;Lorg/hibernate/engine/jdbc/env/spi/JdbcEnvironment;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // org.hibernate.mapping.Table table
        start local 2 // org.hibernate.engine.jdbc.env.spi.JdbcEnvironment jdbcEnvironment
         0: .line 5430
            aload 1 /* table */
            invokevirtual org.hibernate.mapping.Table.getSubselect:()Ljava/lang/String;
            ifnull 2
         1: .line 5431
            new java.lang.StringBuilder
            dup
            ldc "( "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* table */
            invokevirtual org.hibernate.mapping.Table.getSubselect:()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;
            areturn
         2: .line 5434
      StackMap locals:
      StackMap stack:
            aload 2 /* jdbcEnvironment */
            invokeinterface org.hibernate.engine.jdbc.env.spi.JdbcEnvironment.getQualifiedObjectNameFormatter:()Lorg/hibernate/engine/jdbc/env/spi/QualifiedObjectNameFormatter;
         3: .line 5435
            aload 1 /* table */
            invokevirtual org.hibernate.mapping.Table.getQualifiedTableName:()Lorg/hibernate/boot/model/relational/QualifiedTableName;
         4: .line 5436
            aload 2 /* jdbcEnvironment */
            invokeinterface org.hibernate.engine.jdbc.env.spi.JdbcEnvironment.getDialect:()Lorg/hibernate/dialect/Dialect;
         5: .line 5434
            invokeinterface org.hibernate.engine.jdbc.env.spi.QualifiedObjectNameFormatter.format:(Lorg/hibernate/boot/model/relational/QualifiedTableName;Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            areturn
        end local 2 // org.hibernate.engine.jdbc.env.spi.JdbcEnvironment jdbcEnvironment
        end local 1 // org.hibernate.mapping.Table table
        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            table  Lorg/hibernate/mapping/Table;
            0    6     2  jdbcEnvironment  Lorg/hibernate/engine/jdbc/env/spi/JdbcEnvironment;
    MethodParameters:
                 Name  Flags
      table            
      jdbcEnvironment  

  public org.hibernate.engine.spi.EntityEntryFactory getEntityEntryFactory();
    descriptor: ()Lorg/hibernate/engine/spi/EntityEntryFactory;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
         0: .line 5442
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityEntryFactory:Lorg/hibernate/engine/spi/EntityEntryFactory;
            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 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 5544
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.prepareEntityIdentifierDefinition:()V
         1: .line 5545
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.collectAttributeDefinitions:()V
         2: .line 5546
            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 5550
            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 5555
            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 5560
            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;>;

  public java.lang.String[][] getPolymorphicJoinColumns(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)[[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=11, args_size=3
        start local 0 // org.hibernate.persister.entity.AbstractEntityPersister this
        start local 1 // java.lang.String lhsTableAlias
        start local 2 // java.lang.String propertyPath
         0: .line 5564
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getEntityMetamodel:()Lorg/hibernate/tuple/entity/EntityMetamodel;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getSubclassEntityNames:()Ljava/util/Set;
            astore 3 /* subclassEntityNames */
        start local 3 // java.util.Set subclassEntityNames
         1: .line 5566
            new java.util.ArrayList
            dup
            aload 3 /* subclassEntityNames */
            invokeinterface java.util.Set.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* polymorphicJoinColumns */
        start local 4 // java.util.List polymorphicJoinColumns
         2: .line 5571
            aload 3 /* subclassEntityNames */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 17
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.String java.util.Set java.util.List top top java.util.Iterator
      StackMap stack:
         3: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* subclassEntityName */
        start local 6 // java.lang.String subclassEntityName
         4: .line 5572
            aload 0 /* this */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
         5: .line 5573
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
         6: .line 5574
            aload 6 /* subclassEntityName */
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.entityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
         7: .line 5572
            checkcast org.hibernate.persister.entity.AbstractEntityPersister
            astore 8 /* subclassPersister */
        start local 8 // org.hibernate.persister.entity.AbstractEntityPersister subclassPersister
         8: .line 5575
            aload 8 /* subclassPersister */
            aload 1 /* lhsTableAlias */
            aload 2 /* propertyPath */
            invokevirtual org.hibernate.persister.entity.AbstractEntityPersister.toColumns:(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
            astore 5 /* joinColumns */
        start local 5 // java.lang.String[] joinColumns
         9: .line 5577
            aload 5 /* joinColumns */
            arraylength
            ifne 11
        10: .line 5579
            goto 17
        11: .line 5583
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.String java.util.Set java.util.List java.lang.String[] java.lang.String java.util.Iterator org.hibernate.persister.entity.AbstractEntityPersister
      StackMap stack:
            aload 4 /* polymorphicJoinColumns */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 15
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.String java.util.Set java.util.List java.lang.String[] java.lang.String java.util.Iterator org.hibernate.persister.entity.AbstractEntityPersister top java.util.Iterator
      StackMap stack:
        12: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String[]
            astore 9 /* existingColumns */
        start local 9 // java.lang.String[] existingColumns
        13: .line 5584
            aload 9 /* existingColumns */
            aload 5 /* joinColumns */
            invokestatic java.util.Arrays.deepEquals:([Ljava/lang/Object;[Ljava/lang/Object;)Z
            ifeq 15
        14: .line 5585
            goto 17
        end local 9 // java.lang.String[] existingColumns
        15: .line 5583
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        16: .line 5588
            aload 4 /* polymorphicJoinColumns */
            aload 5 /* joinColumns */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // org.hibernate.persister.entity.AbstractEntityPersister subclassPersister
        end local 6 // java.lang.String subclassEntityName
        end local 5 // java.lang.String[] joinColumns
        17: .line 5571
      StackMap locals: org.hibernate.persister.entity.AbstractEntityPersister java.lang.String java.lang.String java.util.Set java.util.List top top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        18: .line 5591
            aload 4 /* polymorphicJoinColumns */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.to2DStringArray:(Ljava/util/Collection;)[[Ljava/lang/String;
            areturn
        end local 4 // java.util.List polymorphicJoinColumns
        end local 3 // java.util.Set subclassEntityNames
        end local 2 // java.lang.String propertyPath
        end local 1 // java.lang.String lhsTableAlias
        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           lhsTableAlias  Ljava/lang/String;
            0   19     2            propertyPath  Ljava/lang/String;
            1   19     3     subclassEntityNames  Ljava/util/Set<Ljava/lang/String;>;
            2   19     4  polymorphicJoinColumns  Ljava/util/List<[Ljava/lang/String;>;
            9   17     5             joinColumns  [Ljava/lang/String;
            4   17     6      subclassEntityName  Ljava/lang/String;
            8   17     8       subclassPersister  Lorg/hibernate/persister/entity/AbstractEntityPersister;
           13   15     9         existingColumns  [Ljava/lang/String;
    MethodParameters:
               Name  Flags
      lhsTableAlias  
      propertyPath   

  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 5595
            aload 0 /* this */
            getfield org.hibernate.persister.entity.AbstractEntityPersister.entityIdentifierDefinition:Lorg/hibernate/persister/walking/spi/EntityIdentifierDefinition;
            ifnull 2
         1: .line 5596
            return
         2: .line 5598
      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 5600
            aload 1 /* idType */
            invokeinterface org.hibernate.type.Type.isComponentType:()Z
            ifne 8
         4: .line 5601
            aload 0 /* this */
         5: .line 5602
            aload 0 /* this */
            invokestatic org.hibernate.persister.walking.internal.EntityIdentifierDefinitionHelper.buildSimpleEncapsulatedIdentifierDefinition:(Lorg/hibernate/persister/entity/AbstractEntityPersister;)Lorg/hibernate/persister/walking/spi/EntityIdentifierDefinition;
         6: .line 5601
            putfield org.hibernate.persister.entity.AbstractEntityPersister.entityIdentifierDefinition:Lorg/hibernate/persister/walking/spi/EntityIdentifierDefinition;
         7: .line 5603
            return
         8: .line 5606
      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 5607
            aload 2 /* cidType */
            invokeinterface org.hibernate.type.CompositeType.isEmbedded:()Z
            ifne 14
        10: .line 5608
            aload 0 /* this */
        11: .line 5609
            aload 0 /* this */
            invokestatic org.hibernate.persister.walking.internal.EntityIdentifierDefinitionHelper.buildEncapsulatedCompositeIdentifierDefinition:(Lorg/hibernate/persister/entity/AbstractEntityPersister;)Lorg/hibernate/persister/walking/spi/EntityIdentifierDefinition;
        12: .line 5608
            putfield org.hibernate.persister.entity.AbstractEntityPersister.entityIdentifierDefinition:Lorg/hibernate/persister/walking/spi/EntityIdentifierDefinition;
        13: .line 5610
            return
        14: .line 5613
      StackMap locals: org.hibernate.type.CompositeType
      StackMap stack:
            aload 0 /* this */
        15: .line 5614
            aload 0 /* this */
            invokestatic org.hibernate.persister.walking.internal.EntityIdentifierDefinitionHelper.buildNonEncapsulatedCompositeIdentifierDefinition:(Lorg/hibernate/persister/entity/AbstractEntityPersister;)Lorg/hibernate/persister/walking/spi/EntityIdentifierDefinition;
        16: .line 5613
            putfield org.hibernate.persister.entity.AbstractEntityPersister.entityIdentifierDefinition:Lorg/hibernate/persister/walking/spi/EntityIdentifierDefinition;
        17: .line 5615
            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 5620
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         1: goto 16
         2: .line 5621
      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 5624
            aload 1 /* attributeDefinitionsByName */
         4: .line 5625
            aload 4 /* attributeDefinition */
            invokeinterface org.hibernate.persister.walking.spi.AttributeDefinition.getName:()Ljava/lang/String;
         5: .line 5624
            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 5627
            aload 5 /* oldAttributeDefinition */
            ifnull 14
         7: .line 5628
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 15
         8: .line 5629
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         9: .line 5630
            ldc "Ignoring subclass attribute definition [%s.%s] because it is defined in a superclass "
        10: .line 5631
            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 5632
            aload 4 /* attributeDefinition */
            invokeinterface org.hibernate.persister.walking.spi.AttributeDefinition.getName:()Ljava/lang/String;
        12: .line 5629
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracef:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        13: .line 5635
            goto 15
        14: .line 5637
      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 5620
      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 5642
            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 5643
            aload 3 /* subClassEntityNames */
            ifnonnull 20
        19: .line 5644
            return
        20: .line 5648
      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 5649
            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 5651
            goto 35
        24: .line 5654
      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 5655
            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 5656
            goto 35
        27: .line 5657
      StackMap locals:
      StackMap stack: org.hibernate.MappingException
            astore 6 /* e */
        start local 6 // org.hibernate.MappingException e
        28: .line 5658
            new java.lang.IllegalStateException
            dup
        29: .line 5660
            ldc "Could not locate subclass EntityPersister [%s] while processing EntityPersister [%s]"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        30: .line 5661
            aload 4 /* subClassEntityName */
            aastore
            dup
            iconst_1
        31: .line 5662
            aload 2 /* metamodel */
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel.getName:()Ljava/lang/String;
            aastore
        32: .line 5659
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        33: .line 5664
            aload 6 /* e */
        34: .line 5658
            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 5648
      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 5668
            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 5680
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 1 /* attributeDefinitionsByName */
        start local 1 // java.util.Map attributeDefinitionsByName
         1: .line 5681
            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 5699
            aload 0 /* this */
         3: .line 5700
            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 5699
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            putfield org.hibernate.persister.entity.AbstractEntityPersister.attributeDefinitions:Ljava/lang/Iterable;
         5: .line 5750
            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;>;

  static int[] $SWITCH_TABLE$org$hibernate$LockMode();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 147
            getstatic org.hibernate.persister.entity.AbstractEntityPersister.$SWITCH_TABLE$org$hibernate$LockMode:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.hibernate.LockMode.values:()[Lorg/hibernate/LockMode;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.hibernate.LockMode.FORCE:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.LockMode.ordinal:()I
            bipush 7
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.hibernate.LockMode.NONE:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.LockMode.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.hibernate.LockMode.OPTIMISTIC:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.LockMode.ordinal:()I
            bipush 8
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.hibernate.LockMode.OPTIMISTIC_FORCE_INCREMENT:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.LockMode.ordinal:()I
            bipush 9
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.hibernate.LockMode.PESSIMISTIC_FORCE_INCREMENT:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.LockMode.ordinal:()I
            bipush 12
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic org.hibernate.LockMode.PESSIMISTIC_READ:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.LockMode.ordinal:()I
            bipush 10
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic org.hibernate.LockMode.PESSIMISTIC_WRITE:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.LockMode.ordinal:()I
            bipush 11
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic org.hibernate.LockMode.READ:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.LockMode.ordinal:()I
            iconst_2
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic org.hibernate.LockMode.UPGRADE:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.LockMode.ordinal:()I
            iconst_3
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic org.hibernate.LockMode.UPGRADE_NOWAIT:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.LockMode.ordinal:()I
            iconst_4
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic org.hibernate.LockMode.UPGRADE_SKIPLOCKED:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.LockMode.ordinal:()I
            iconst_5
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic org.hibernate.LockMode.WRITE:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.LockMode.ordinal:()I
            bipush 6
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            dup
            putstatic org.hibernate.persister.entity.AbstractEntityPersister.$SWITCH_TABLE$org$hibernate$LockMode:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError
}
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  org.hibernate.persister.entity.AbstractEntityPersister$SubstituteBracketSQLQueryParser
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public abstract InterceptorImplementor = org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer$InterceptorImplementor of org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer
  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
  private SubstituteBracketSQLQueryParser = org.hibernate.persister.entity.AbstractEntityPersister$SubstituteBracketSQLQueryParser of org.hibernate.persister.entity.AbstractEntityPersister
  public Declarer = org.hibernate.persister.entity.Queryable$Declarer of org.hibernate.persister.entity.Queryable