public class org.hibernate.cfg.Ejb3JoinColumn extends org.hibernate.cfg.Ejb3Column
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.cfg.Ejb3JoinColumn
  super_class: org.hibernate.cfg.Ejb3Column
{
  private java.lang.String referencedColumn;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

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

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

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

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

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

  private boolean JPA2ElementCollection;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

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

  public static final int NO_REFERENCE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int PK_REFERENCE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int NON_PK_REFERENCE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public void setJPA2ElementCollection(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // boolean JPA2ElementCollection
         0: .line 66
            aload 0 /* this */
            iload 1 /* JPA2ElementCollection */
            putfield org.hibernate.cfg.Ejb3JoinColumn.JPA2ElementCollection:Z
         1: .line 67
            return
        end local 1 // boolean JPA2ElementCollection
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    2     0                   this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0    2     1  JPA2ElementCollection  Z
    MethodParameters:
                       Name  Flags
      JPA2ElementCollection  

  public java.lang.String getManyToManyOwnerSideEntityName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
         0: .line 71
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.manyToManyOwnerSideEntityName:Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/cfg/Ejb3JoinColumn;

  public void setManyToManyOwnerSideEntityName(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.cfg.Ejb3JoinColumn this
        start local 1 // java.lang.String manyToManyOwnerSideEntityName
         0: .line 75
            aload 0 /* this */
            aload 1 /* manyToManyOwnerSideEntityName */
            putfield org.hibernate.cfg.Ejb3JoinColumn.manyToManyOwnerSideEntityName:Ljava/lang/String;
         1: .line 76
            return
        end local 1 // java.lang.String manyToManyOwnerSideEntityName
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0    2     0                           this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0    2     1  manyToManyOwnerSideEntityName  Ljava/lang/String;
    MethodParameters:
                               Name  Flags
      manyToManyOwnerSideEntityName  

  public void setReferencedColumn(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.cfg.Ejb3JoinColumn this
        start local 1 // java.lang.String referencedColumn
         0: .line 81
            aload 0 /* this */
            aload 1 /* referencedColumn */
            putfield org.hibernate.cfg.Ejb3JoinColumn.referencedColumn:Ljava/lang/String;
         1: .line 82
            return
        end local 1 // java.lang.String referencedColumn
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0    2     1  referencedColumn  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      referencedColumn  

  public java.lang.String getMappedBy();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
         0: .line 85
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.mappedBy:Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/cfg/Ejb3JoinColumn;

  public void setMappedBy(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.cfg.Ejb3JoinColumn this
        start local 1 // java.lang.String mappedBy
         0: .line 89
            aload 0 /* this */
            aload 1 /* mappedBy */
            putfield org.hibernate.cfg.Ejb3JoinColumn.mappedBy:Ljava/lang/String;
         1: .line 90
            return
        end local 1 // java.lang.String mappedBy
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0    2     1  mappedBy  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      mappedBy  

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
         0: .line 93
            aload 0 /* this */
            invokespecial org.hibernate.cfg.Ejb3Column.<init>:()V
         1: .line 94
            aload 0 /* this */
            ldc ""
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setMappedBy:(Ljava/lang/String;)V
         2: .line 95
            return
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/cfg/Ejb3JoinColumn;

  private void <init>(java.lang.String, java.lang.String, boolean, boolean, boolean, boolean, java.lang.String, java.lang.String, java.util.Map<java.lang.String, org.hibernate.mapping.Join>, org.hibernate.cfg.PropertyHolder, java.lang.String, java.lang.String, boolean, org.hibernate.boot.spi.MetadataBuildingContext);
    descriptor: (Ljava/lang/String;Ljava/lang/String;ZZZZLjava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Ljava/lang/String;ZLorg/hibernate/boot/spi/MetadataBuildingContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=15, args_size=15
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // java.lang.String sqlType
        start local 2 // java.lang.String name
        start local 3 // boolean nullable
        start local 4 // boolean unique
        start local 5 // boolean insertable
        start local 6 // boolean updatable
        start local 7 // java.lang.String referencedColumn
        start local 8 // java.lang.String secondaryTable
        start local 9 // java.util.Map joins
        start local 10 // org.hibernate.cfg.PropertyHolder propertyHolder
        start local 11 // java.lang.String propertyName
        start local 12 // java.lang.String mappedBy
        start local 13 // boolean isImplicit
        start local 14 // org.hibernate.boot.spi.MetadataBuildingContext buildingContext
         0: .line 114
            aload 0 /* this */
            invokespecial org.hibernate.cfg.Ejb3Column.<init>:()V
         1: .line 115
            aload 0 /* this */
            iload 13 /* isImplicit */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setImplicit:(Z)V
         2: .line 116
            aload 0 /* this */
            aload 1 /* sqlType */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setSqlType:(Ljava/lang/String;)V
         3: .line 117
            aload 0 /* this */
            aload 2 /* name */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setLogicalColumnName:(Ljava/lang/String;)V
         4: .line 118
            aload 0 /* this */
            iload 3 /* nullable */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setNullable:(Z)V
         5: .line 119
            aload 0 /* this */
            iload 4 /* unique */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setUnique:(Z)V
         6: .line 120
            aload 0 /* this */
            iload 5 /* insertable */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setInsertable:(Z)V
         7: .line 121
            aload 0 /* this */
            iload 6 /* updatable */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setUpdatable:(Z)V
         8: .line 122
            aload 0 /* this */
            aload 8 /* secondaryTable */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setExplicitTableName:(Ljava/lang/String;)V
         9: .line 123
            aload 0 /* this */
            aload 10 /* propertyHolder */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setPropertyHolder:(Lorg/hibernate/cfg/PropertyHolder;)V
        10: .line 124
            aload 0 /* this */
            aload 9 /* joins */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setJoins:(Ljava/util/Map;)V
        11: .line 125
            aload 0 /* this */
            aload 14 /* buildingContext */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setBuildingContext:(Lorg/hibernate/boot/spi/MetadataBuildingContext;)V
        12: .line 126
            aload 0 /* this */
            aload 10 /* propertyHolder */
            aload 11 /* propertyName */
            invokestatic org.hibernate.cfg.BinderHelper.getRelativePath:(Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setPropertyName:(Ljava/lang/String;)V
        13: .line 127
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.bind:()V
        14: .line 128
            aload 0 /* this */
            aload 7 /* referencedColumn */
            putfield org.hibernate.cfg.Ejb3JoinColumn.referencedColumn:Ljava/lang/String;
        15: .line 129
            aload 0 /* this */
            aload 12 /* mappedBy */
            putfield org.hibernate.cfg.Ejb3JoinColumn.mappedBy:Ljava/lang/String;
        16: .line 130
            return
        end local 14 // org.hibernate.boot.spi.MetadataBuildingContext buildingContext
        end local 13 // boolean isImplicit
        end local 12 // java.lang.String mappedBy
        end local 11 // java.lang.String propertyName
        end local 10 // org.hibernate.cfg.PropertyHolder propertyHolder
        end local 9 // java.util.Map joins
        end local 8 // java.lang.String secondaryTable
        end local 7 // java.lang.String referencedColumn
        end local 6 // boolean updatable
        end local 5 // boolean insertable
        end local 4 // boolean unique
        end local 3 // boolean nullable
        end local 2 // java.lang.String name
        end local 1 // java.lang.String sqlType
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   17     0              this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0   17     1           sqlType  Ljava/lang/String;
            0   17     2              name  Ljava/lang/String;
            0   17     3          nullable  Z
            0   17     4            unique  Z
            0   17     5        insertable  Z
            0   17     6         updatable  Z
            0   17     7  referencedColumn  Ljava/lang/String;
            0   17     8    secondaryTable  Ljava/lang/String;
            0   17     9             joins  Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;
            0   17    10    propertyHolder  Lorg/hibernate/cfg/PropertyHolder;
            0   17    11      propertyName  Ljava/lang/String;
            0   17    12          mappedBy  Ljava/lang/String;
            0   17    13        isImplicit  Z
            0   17    14   buildingContext  Lorg/hibernate/boot/spi/MetadataBuildingContext;
    Signature: (Ljava/lang/String;Ljava/lang/String;ZZZZLjava/lang/String;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Ljava/lang/String;ZLorg/hibernate/boot/spi/MetadataBuildingContext;)V
    MethodParameters:
                  Name  Flags
      sqlType           
      name              
      nullable          
      unique            
      insertable        
      updatable         
      referencedColumn  
      secondaryTable    
      joins             
      propertyHolder    
      propertyName      
      mappedBy          
      isImplicit        
      buildingContext   

  public java.lang.String getReferencedColumn();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
         0: .line 133
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.referencedColumn:Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/cfg/Ejb3JoinColumn;

  public static org.hibernate.cfg.Ejb3JoinColumn[] buildJoinColumnsOrFormulas(org.hibernate.annotations.JoinColumnOrFormula[], java.lang.String, java.util.Map<java.lang.String, org.hibernate.mapping.Join>, org.hibernate.cfg.PropertyHolder, java.lang.String, org.hibernate.boot.spi.MetadataBuildingContext);
    descriptor: ([Lorg/hibernate/annotations/JoinColumnOrFormula;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Lorg/hibernate/boot/spi/MetadataBuildingContext;)[Lorg/hibernate/cfg/Ejb3JoinColumn;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=10, args_size=6
        start local 0 // org.hibernate.annotations.JoinColumnOrFormula[] anns
        start local 1 // java.lang.String mappedBy
        start local 2 // java.util.Map joins
        start local 3 // org.hibernate.cfg.PropertyHolder propertyHolder
        start local 4 // java.lang.String propertyName
        start local 5 // org.hibernate.boot.spi.MetadataBuildingContext buildingContext
         0: .line 143
            aload 0 /* anns */
            arraylength
            anewarray org.hibernate.cfg.Ejb3JoinColumn
            astore 6 /* joinColumns */
        start local 6 // org.hibernate.cfg.Ejb3JoinColumn[] joinColumns
         1: .line 144
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         2: goto 16
         3: .line 145
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn[] int
      StackMap stack:
            aload 0 /* anns */
            iload 7 /* i */
            aaload
            astore 8 /* join */
        start local 8 // org.hibernate.annotations.JoinColumnOrFormula join
         4: .line 146
            aload 8 /* join */
            invokeinterface org.hibernate.annotations.JoinColumnOrFormula.formula:()Lorg/hibernate/annotations/JoinFormula;
            astore 9 /* formula */
        start local 9 // org.hibernate.annotations.JoinFormula formula
         5: .line 147
            aload 9 /* formula */
            invokeinterface org.hibernate.annotations.JoinFormula.value:()Ljava/lang/String;
            ifnull 10
            aload 9 /* formula */
            invokeinterface org.hibernate.annotations.JoinFormula.value:()Ljava/lang/String;
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
         6: .line 148
            aload 6 /* joinColumns */
            iload 7 /* i */
         7: .line 149
            aload 9 /* formula */
            aload 1 /* mappedBy */
            aload 2 /* joins */
            aload 3 /* propertyHolder */
            aload 4 /* propertyName */
            aload 5 /* buildingContext */
         8: .line 148
            invokestatic org.hibernate.cfg.Ejb3JoinColumn.buildJoinFormula:(Lorg/hibernate/annotations/JoinFormula;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Lorg/hibernate/boot/spi/MetadataBuildingContext;)Lorg/hibernate/cfg/Ejb3JoinColumn;
            aastore
         9: .line 151
            goto 15
        10: .line 153
      StackMap locals: org.hibernate.annotations.JoinColumnOrFormula org.hibernate.annotations.JoinFormula
      StackMap stack:
            aload 6 /* joinColumns */
            iload 7 /* i */
        11: .line 154
            iconst_1
            anewarray javax.persistence.JoinColumn
            dup
            iconst_0
            aload 8 /* join */
            invokeinterface org.hibernate.annotations.JoinColumnOrFormula.column:()Ljavax/persistence/JoinColumn;
            aastore
            aload 1 /* mappedBy */
            aload 2 /* joins */
            aload 3 /* propertyHolder */
            aload 4 /* propertyName */
            aload 5 /* buildingContext */
        12: .line 153
            invokestatic org.hibernate.cfg.Ejb3JoinColumn.buildJoinColumns:([Ljavax/persistence/JoinColumn;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Lorg/hibernate/boot/spi/MetadataBuildingContext;)[Lorg/hibernate/cfg/Ejb3JoinColumn;
        13: .line 155
            iconst_0
        14: .line 153
            aaload
            aastore
        end local 9 // org.hibernate.annotations.JoinFormula formula
        end local 8 // org.hibernate.annotations.JoinColumnOrFormula join
        15: .line 144
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 7 /* i */
            aload 0 /* anns */
            arraylength
            if_icmplt 3
        end local 7 // int i
        17: .line 159
            aload 6 /* joinColumns */
            areturn
        end local 6 // org.hibernate.cfg.Ejb3JoinColumn[] joinColumns
        end local 5 // org.hibernate.boot.spi.MetadataBuildingContext buildingContext
        end local 4 // java.lang.String propertyName
        end local 3 // org.hibernate.cfg.PropertyHolder propertyHolder
        end local 2 // java.util.Map joins
        end local 1 // java.lang.String mappedBy
        end local 0 // org.hibernate.annotations.JoinColumnOrFormula[] anns
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   18     0             anns  [Lorg/hibernate/annotations/JoinColumnOrFormula;
            0   18     1         mappedBy  Ljava/lang/String;
            0   18     2            joins  Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;
            0   18     3   propertyHolder  Lorg/hibernate/cfg/PropertyHolder;
            0   18     4     propertyName  Ljava/lang/String;
            0   18     5  buildingContext  Lorg/hibernate/boot/spi/MetadataBuildingContext;
            1   18     6      joinColumns  [Lorg/hibernate/cfg/Ejb3JoinColumn;
            2   17     7                i  I
            4   15     8             join  Lorg/hibernate/annotations/JoinColumnOrFormula;
            5   15     9          formula  Lorg/hibernate/annotations/JoinFormula;
    Signature: ([Lorg/hibernate/annotations/JoinColumnOrFormula;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Lorg/hibernate/boot/spi/MetadataBuildingContext;)[Lorg/hibernate/cfg/Ejb3JoinColumn;
    MethodParameters:
                 Name  Flags
      anns             
      mappedBy         
      joins            
      propertyHolder   
      propertyName     
      buildingContext  

  public static org.hibernate.cfg.Ejb3JoinColumn buildJoinFormula(org.hibernate.annotations.JoinFormula, java.lang.String, java.util.Map<java.lang.String, org.hibernate.mapping.Join>, org.hibernate.cfg.PropertyHolder, java.lang.String, org.hibernate.boot.spi.MetadataBuildingContext);
    descriptor: (Lorg/hibernate/annotations/JoinFormula;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Lorg/hibernate/boot/spi/MetadataBuildingContext;)Lorg/hibernate/cfg/Ejb3JoinColumn;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=6
        start local 0 // org.hibernate.annotations.JoinFormula ann
        start local 1 // java.lang.String mappedBy
        start local 2 // java.util.Map joins
        start local 3 // org.hibernate.cfg.PropertyHolder propertyHolder
        start local 4 // java.lang.String propertyName
        start local 5 // org.hibernate.boot.spi.MetadataBuildingContext buildingContext
         0: .line 172
            new org.hibernate.cfg.Ejb3JoinColumn
            dup
            invokespecial org.hibernate.cfg.Ejb3JoinColumn.<init>:()V
            astore 6 /* formulaColumn */
        start local 6 // org.hibernate.cfg.Ejb3JoinColumn formulaColumn
         1: .line 173
            aload 6 /* formulaColumn */
            aload 0 /* ann */
            invokeinterface org.hibernate.annotations.JoinFormula.value:()Ljava/lang/String;
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setFormula:(Ljava/lang/String;)V
         2: .line 174
            aload 6 /* formulaColumn */
            aload 0 /* ann */
            invokeinterface org.hibernate.annotations.JoinFormula.referencedColumnName:()Ljava/lang/String;
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setReferencedColumn:(Ljava/lang/String;)V
         3: .line 175
            aload 6 /* formulaColumn */
            aload 5 /* buildingContext */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setBuildingContext:(Lorg/hibernate/boot/spi/MetadataBuildingContext;)V
         4: .line 176
            aload 6 /* formulaColumn */
            aload 3 /* propertyHolder */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setPropertyHolder:(Lorg/hibernate/cfg/PropertyHolder;)V
         5: .line 177
            aload 6 /* formulaColumn */
            aload 2 /* joins */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setJoins:(Ljava/util/Map;)V
         6: .line 178
            aload 6 /* formulaColumn */
            aload 3 /* propertyHolder */
            aload 4 /* propertyName */
            invokestatic org.hibernate.cfg.BinderHelper.getRelativePath:(Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setPropertyName:(Ljava/lang/String;)V
         7: .line 179
            aload 6 /* formulaColumn */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.bind:()V
         8: .line 180
            aload 6 /* formulaColumn */
            areturn
        end local 6 // org.hibernate.cfg.Ejb3JoinColumn formulaColumn
        end local 5 // org.hibernate.boot.spi.MetadataBuildingContext buildingContext
        end local 4 // java.lang.String propertyName
        end local 3 // org.hibernate.cfg.PropertyHolder propertyHolder
        end local 2 // java.util.Map joins
        end local 1 // java.lang.String mappedBy
        end local 0 // org.hibernate.annotations.JoinFormula ann
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0              ann  Lorg/hibernate/annotations/JoinFormula;
            0    9     1         mappedBy  Ljava/lang/String;
            0    9     2            joins  Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;
            0    9     3   propertyHolder  Lorg/hibernate/cfg/PropertyHolder;
            0    9     4     propertyName  Ljava/lang/String;
            0    9     5  buildingContext  Lorg/hibernate/boot/spi/MetadataBuildingContext;
            1    9     6    formulaColumn  Lorg/hibernate/cfg/Ejb3JoinColumn;
    Signature: (Lorg/hibernate/annotations/JoinFormula;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Lorg/hibernate/boot/spi/MetadataBuildingContext;)Lorg/hibernate/cfg/Ejb3JoinColumn;
    MethodParameters:
                 Name  Flags
      ann              
      mappedBy         
      joins            
      propertyHolder   
      propertyName     
      buildingContext  

  public static org.hibernate.cfg.Ejb3JoinColumn[] buildJoinColumns(javax.persistence.JoinColumn[], java.lang.String, java.util.Map<java.lang.String, org.hibernate.mapping.Join>, org.hibernate.cfg.PropertyHolder, java.lang.String, org.hibernate.boot.spi.MetadataBuildingContext);
    descriptor: ([Ljavax/persistence/JoinColumn;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Lorg/hibernate/boot/spi/MetadataBuildingContext;)[Lorg/hibernate/cfg/Ejb3JoinColumn;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // javax.persistence.JoinColumn[] anns
        start local 1 // java.lang.String mappedBy
        start local 2 // java.util.Map joins
        start local 3 // org.hibernate.cfg.PropertyHolder propertyHolder
        start local 4 // java.lang.String propertyName
        start local 5 // org.hibernate.boot.spi.MetadataBuildingContext buildingContext
         0: .line 191
            aload 0 /* anns */
            aload 1 /* mappedBy */
            aload 2 /* joins */
            aload 3 /* propertyHolder */
            aload 4 /* propertyName */
            ldc ""
            aload 5 /* buildingContext */
         1: .line 190
            invokestatic org.hibernate.cfg.Ejb3JoinColumn.buildJoinColumnsWithDefaultColumnSuffix:([Ljavax/persistence/JoinColumn;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/boot/spi/MetadataBuildingContext;)[Lorg/hibernate/cfg/Ejb3JoinColumn;
            areturn
        end local 5 // org.hibernate.boot.spi.MetadataBuildingContext buildingContext
        end local 4 // java.lang.String propertyName
        end local 3 // org.hibernate.cfg.PropertyHolder propertyHolder
        end local 2 // java.util.Map joins
        end local 1 // java.lang.String mappedBy
        end local 0 // javax.persistence.JoinColumn[] anns
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             anns  [Ljavax/persistence/JoinColumn;
            0    2     1         mappedBy  Ljava/lang/String;
            0    2     2            joins  Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;
            0    2     3   propertyHolder  Lorg/hibernate/cfg/PropertyHolder;
            0    2     4     propertyName  Ljava/lang/String;
            0    2     5  buildingContext  Lorg/hibernate/boot/spi/MetadataBuildingContext;
    Signature: ([Ljavax/persistence/JoinColumn;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Lorg/hibernate/boot/spi/MetadataBuildingContext;)[Lorg/hibernate/cfg/Ejb3JoinColumn;
    MethodParameters:
                 Name  Flags
      anns             
      mappedBy         
      joins            
      propertyHolder   
      propertyName     
      buildingContext  

  public static org.hibernate.cfg.Ejb3JoinColumn[] buildJoinColumnsWithDefaultColumnSuffix(javax.persistence.JoinColumn[], java.lang.String, java.util.Map<java.lang.String, org.hibernate.mapping.Join>, org.hibernate.cfg.PropertyHolder, java.lang.String, java.lang.String, org.hibernate.boot.spi.MetadataBuildingContext);
    descriptor: ([Ljavax/persistence/JoinColumn;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/boot/spi/MetadataBuildingContext;)[Lorg/hibernate/cfg/Ejb3JoinColumn;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=10, locals=11, args_size=7
        start local 0 // javax.persistence.JoinColumn[] anns
        start local 1 // java.lang.String mappedBy
        start local 2 // java.util.Map joins
        start local 3 // org.hibernate.cfg.PropertyHolder propertyHolder
        start local 4 // java.lang.String propertyName
        start local 5 // java.lang.String suffixForDefaultColumnName
        start local 6 // org.hibernate.boot.spi.MetadataBuildingContext buildingContext
         0: .line 203
            aload 3 /* propertyHolder */
         1: .line 204
            aload 3 /* propertyHolder */
            invokeinterface org.hibernate.cfg.PropertyHolder.getPath:()Ljava/lang/String;
            aload 4 /* propertyName */
            invokestatic org.hibernate.internal.util.StringHelper.qualify:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
         2: .line 203
            invokeinterface org.hibernate.cfg.PropertyHolder.getOverriddenJoinColumn:(Ljava/lang/String;)[Ljavax/persistence/JoinColumn;
            astore 7 /* actualColumns */
        start local 7 // javax.persistence.JoinColumn[] actualColumns
         3: .line 206
            aload 7 /* actualColumns */
            ifnonnull 4
            aload 0 /* anns */
            astore 7 /* actualColumns */
         4: .line 207
      StackMap locals: javax.persistence.JoinColumn[]
      StackMap stack:
            aload 7 /* actualColumns */
            ifnull 5
            aload 7 /* actualColumns */
            arraylength
            ifne 15
         5: .line 208
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray org.hibernate.cfg.Ejb3JoinColumn
            dup
            iconst_0
         6: .line 210
            aconst_null
         7: .line 211
            aload 1 /* mappedBy */
         8: .line 212
            aload 2 /* joins */
         9: .line 213
            aload 3 /* propertyHolder */
        10: .line 214
            aload 4 /* propertyName */
        11: .line 215
            aload 5 /* suffixForDefaultColumnName */
        12: .line 216
            aload 6 /* buildingContext */
        13: .line 209
            invokestatic org.hibernate.cfg.Ejb3JoinColumn.buildJoinColumn:(Ljavax/persistence/JoinColumn;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/boot/spi/MetadataBuildingContext;)Lorg/hibernate/cfg/Ejb3JoinColumn;
            aastore
        14: .line 208
            areturn
        15: .line 221
      StackMap locals:
      StackMap stack:
            aload 7 /* actualColumns */
            arraylength
            istore 8 /* size */
        start local 8 // int size
        16: .line 222
            iload 8 /* size */
            anewarray org.hibernate.cfg.Ejb3JoinColumn
            astore 9 /* result */
        start local 9 // org.hibernate.cfg.Ejb3JoinColumn[] result
        17: .line 223
            iconst_0
            istore 10 /* index */
        start local 10 // int index
        18: goto 29
        19: .line 224
      StackMap locals: int org.hibernate.cfg.Ejb3JoinColumn[] int
      StackMap stack:
            aload 9 /* result */
            iload 10 /* index */
        20: .line 225
            aload 7 /* actualColumns */
            iload 10 /* index */
            aaload
        21: .line 226
            aload 1 /* mappedBy */
        22: .line 227
            aload 2 /* joins */
        23: .line 228
            aload 3 /* propertyHolder */
        24: .line 229
            aload 4 /* propertyName */
        25: .line 230
            aload 5 /* suffixForDefaultColumnName */
        26: .line 231
            aload 6 /* buildingContext */
        27: .line 224
            invokestatic org.hibernate.cfg.Ejb3JoinColumn.buildJoinColumn:(Ljavax/persistence/JoinColumn;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/boot/spi/MetadataBuildingContext;)Lorg/hibernate/cfg/Ejb3JoinColumn;
            aastore
        28: .line 223
            iinc 10 /* index */ 1
      StackMap locals:
      StackMap stack:
        29: iload 10 /* index */
            iload 8 /* size */
            if_icmplt 19
        end local 10 // int index
        30: .line 234
            aload 9 /* result */
            areturn
        end local 9 // org.hibernate.cfg.Ejb3JoinColumn[] result
        end local 8 // int size
        end local 7 // javax.persistence.JoinColumn[] actualColumns
        end local 6 // org.hibernate.boot.spi.MetadataBuildingContext buildingContext
        end local 5 // java.lang.String suffixForDefaultColumnName
        end local 4 // java.lang.String propertyName
        end local 3 // org.hibernate.cfg.PropertyHolder propertyHolder
        end local 2 // java.util.Map joins
        end local 1 // java.lang.String mappedBy
        end local 0 // javax.persistence.JoinColumn[] anns
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   31     0                        anns  [Ljavax/persistence/JoinColumn;
            0   31     1                    mappedBy  Ljava/lang/String;
            0   31     2                       joins  Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;
            0   31     3              propertyHolder  Lorg/hibernate/cfg/PropertyHolder;
            0   31     4                propertyName  Ljava/lang/String;
            0   31     5  suffixForDefaultColumnName  Ljava/lang/String;
            0   31     6             buildingContext  Lorg/hibernate/boot/spi/MetadataBuildingContext;
            3   31     7               actualColumns  [Ljavax/persistence/JoinColumn;
           16   31     8                        size  I
           17   31     9                      result  [Lorg/hibernate/cfg/Ejb3JoinColumn;
           18   30    10                       index  I
    Signature: ([Ljavax/persistence/JoinColumn;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/boot/spi/MetadataBuildingContext;)[Lorg/hibernate/cfg/Ejb3JoinColumn;
    MethodParameters:
                            Name  Flags
      anns                        
      mappedBy                    
      joins                       
      propertyHolder              
      propertyName                
      suffixForDefaultColumnName  
      buildingContext             

  private static org.hibernate.cfg.Ejb3JoinColumn buildJoinColumn(javax.persistence.JoinColumn, java.lang.String, java.util.Map<java.lang.String, org.hibernate.mapping.Join>, org.hibernate.cfg.PropertyHolder, java.lang.String, java.lang.String, org.hibernate.boot.spi.MetadataBuildingContext);
    descriptor: (Ljavax/persistence/JoinColumn;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/boot/spi/MetadataBuildingContext;)Lorg/hibernate/cfg/Ejb3JoinColumn;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=7
        start local 0 // javax.persistence.JoinColumn ann
        start local 1 // java.lang.String mappedBy
        start local 2 // java.util.Map joins
        start local 3 // org.hibernate.cfg.PropertyHolder propertyHolder
        start local 4 // java.lang.String propertyName
        start local 5 // java.lang.String suffixForDefaultColumnName
        start local 6 // org.hibernate.boot.spi.MetadataBuildingContext buildingContext
         0: .line 248
            aload 0 /* ann */
            ifnull 19
         1: .line 249
            aload 1 /* mappedBy */
            invokestatic org.hibernate.cfg.BinderHelper.isEmptyAnnotationValue:(Ljava/lang/String;)Z
            ifeq 7
         2: .line 250
            new org.hibernate.AnnotationException
            dup
         3: .line 251
            new java.lang.StringBuilder
            dup
            ldc "Illegal attempt to define a @JoinColumn with a mappedBy association: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         4: .line 252
            aload 3 /* propertyHolder */
            aload 4 /* propertyName */
            invokestatic org.hibernate.cfg.BinderHelper.getRelativePath:(Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 251
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 250
            invokespecial org.hibernate.AnnotationException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 255
      StackMap locals:
      StackMap stack:
            new org.hibernate.cfg.Ejb3JoinColumn
            dup
            invokespecial org.hibernate.cfg.Ejb3JoinColumn.<init>:()V
            astore 7 /* joinColumn */
        start local 7 // org.hibernate.cfg.Ejb3JoinColumn joinColumn
         8: .line 256
            aload 7 /* joinColumn */
            aload 6 /* buildingContext */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setBuildingContext:(Lorg/hibernate/boot/spi/MetadataBuildingContext;)V
         9: .line 257
            aload 7 /* joinColumn */
            aload 0 /* ann */
            aconst_null
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setJoinAnnotation:(Ljavax/persistence/JoinColumn;Ljava/lang/String;)V
        10: .line 258
            aload 7 /* joinColumn */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getLogicalColumnName:()Ljava/lang/String;
            invokestatic org.hibernate.internal.util.StringHelper.isEmpty:(Ljava/lang/String;)Z
            ifeq 13
        11: .line 259
            aload 5 /* suffixForDefaultColumnName */
            invokestatic org.hibernate.internal.util.StringHelper.isEmpty:(Ljava/lang/String;)Z
            ifne 13
        12: .line 260
            aload 7 /* joinColumn */
            new java.lang.StringBuilder
            dup
            aload 4 /* propertyName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* suffixForDefaultColumnName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setLogicalColumnName:(Ljava/lang/String;)V
        13: .line 262
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn
      StackMap stack:
            aload 7 /* joinColumn */
            aload 2 /* joins */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setJoins:(Ljava/util/Map;)V
        14: .line 263
            aload 7 /* joinColumn */
            aload 3 /* propertyHolder */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setPropertyHolder:(Lorg/hibernate/cfg/PropertyHolder;)V
        15: .line 264
            aload 7 /* joinColumn */
            aload 3 /* propertyHolder */
            aload 4 /* propertyName */
            invokestatic org.hibernate.cfg.BinderHelper.getRelativePath:(Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setPropertyName:(Ljava/lang/String;)V
        16: .line 265
            aload 7 /* joinColumn */
            iconst_0
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setImplicit:(Z)V
        17: .line 266
            aload 7 /* joinColumn */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.bind:()V
        18: .line 267
            aload 7 /* joinColumn */
            areturn
        end local 7 // org.hibernate.cfg.Ejb3JoinColumn joinColumn
        19: .line 270
      StackMap locals:
      StackMap stack:
            new org.hibernate.cfg.Ejb3JoinColumn
            dup
            invokespecial org.hibernate.cfg.Ejb3JoinColumn.<init>:()V
            astore 7 /* joinColumn */
        start local 7 // org.hibernate.cfg.Ejb3JoinColumn joinColumn
        20: .line 271
            aload 7 /* joinColumn */
            aload 1 /* mappedBy */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setMappedBy:(Ljava/lang/String;)V
        21: .line 272
            aload 7 /* joinColumn */
            aload 2 /* joins */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setJoins:(Ljava/util/Map;)V
        22: .line 273
            aload 7 /* joinColumn */
            aload 3 /* propertyHolder */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setPropertyHolder:(Lorg/hibernate/cfg/PropertyHolder;)V
        23: .line 274
            aload 7 /* joinColumn */
        24: .line 275
            aload 3 /* propertyHolder */
            aload 4 /* propertyName */
            invokestatic org.hibernate.cfg.BinderHelper.getRelativePath:(Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;)Ljava/lang/String;
        25: .line 274
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setPropertyName:(Ljava/lang/String;)V
        26: .line 278
            aload 5 /* suffixForDefaultColumnName */
            invokestatic org.hibernate.internal.util.StringHelper.isEmpty:(Ljava/lang/String;)Z
            ifne 30
        27: .line 279
            aload 7 /* joinColumn */
            new java.lang.StringBuilder
            dup
            aload 4 /* propertyName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* suffixForDefaultColumnName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setLogicalColumnName:(Ljava/lang/String;)V
        28: .line 280
            aload 7 /* joinColumn */
            iconst_0
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setImplicit:(Z)V
        29: .line 281
            goto 31
        30: .line 283
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn
      StackMap stack:
            aload 7 /* joinColumn */
            iconst_1
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setImplicit:(Z)V
        31: .line 285
      StackMap locals:
      StackMap stack:
            aload 7 /* joinColumn */
            aload 6 /* buildingContext */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setBuildingContext:(Lorg/hibernate/boot/spi/MetadataBuildingContext;)V
        32: .line 286
            aload 7 /* joinColumn */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.bind:()V
        33: .line 287
            aload 7 /* joinColumn */
            areturn
        end local 7 // org.hibernate.cfg.Ejb3JoinColumn joinColumn
        end local 6 // org.hibernate.boot.spi.MetadataBuildingContext buildingContext
        end local 5 // java.lang.String suffixForDefaultColumnName
        end local 4 // java.lang.String propertyName
        end local 3 // org.hibernate.cfg.PropertyHolder propertyHolder
        end local 2 // java.util.Map joins
        end local 1 // java.lang.String mappedBy
        end local 0 // javax.persistence.JoinColumn ann
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   34     0                         ann  Ljavax/persistence/JoinColumn;
            0   34     1                    mappedBy  Ljava/lang/String;
            0   34     2                       joins  Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;
            0   34     3              propertyHolder  Lorg/hibernate/cfg/PropertyHolder;
            0   34     4                propertyName  Ljava/lang/String;
            0   34     5  suffixForDefaultColumnName  Ljava/lang/String;
            0   34     6             buildingContext  Lorg/hibernate/boot/spi/MetadataBuildingContext;
            8   19     7                  joinColumn  Lorg/hibernate/cfg/Ejb3JoinColumn;
           20   34     7                  joinColumn  Lorg/hibernate/cfg/Ejb3JoinColumn;
    Signature: (Ljavax/persistence/JoinColumn;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/boot/spi/MetadataBuildingContext;)Lorg/hibernate/cfg/Ejb3JoinColumn;
    MethodParameters:
                            Name  Flags
      ann                         
      mappedBy                    
      joins                       
      propertyHolder              
      propertyName                
      suffixForDefaultColumnName  
      buildingContext             

  public void setJoinAnnotation(javax.persistence.JoinColumn, java.lang.String);
    descriptor: (Ljavax/persistence/JoinColumn;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // javax.persistence.JoinColumn annJoin
        start local 2 // java.lang.String defaultName
         0: .line 294
            aload 1 /* annJoin */
            ifnonnull 3
         1: .line 295
            aload 0 /* this */
            iconst_1
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setImplicit:(Z)V
         2: .line 296
            goto 27
         3: .line 298
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setImplicit:(Z)V
         4: .line 299
            aload 1 /* annJoin */
            invokeinterface javax.persistence.JoinColumn.columnDefinition:()Ljava/lang/String;
            invokestatic org.hibernate.cfg.BinderHelper.isEmptyAnnotationValue:(Ljava/lang/String;)Z
            ifne 6
         5: .line 300
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getBuildingContext:()Lorg/hibernate/boot/spi/MetadataBuildingContext;
            invokeinterface org.hibernate.boot.spi.MetadataBuildingContext.getObjectNameNormalizer:()Lorg/hibernate/boot/model/naming/ObjectNameNormalizer;
            aload 1 /* annJoin */
            invokeinterface javax.persistence.JoinColumn.columnDefinition:()Ljava/lang/String;
            invokevirtual org.hibernate.boot.model.naming.ObjectNameNormalizer.applyGlobalQuoting:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setSqlType:(Ljava/lang/String;)V
         6: .line 302
      StackMap locals:
      StackMap stack:
            aload 1 /* annJoin */
            invokeinterface javax.persistence.JoinColumn.name:()Ljava/lang/String;
            invokestatic org.hibernate.cfg.BinderHelper.isEmptyAnnotationValue:(Ljava/lang/String;)Z
            ifne 8
         7: .line 303
            aload 0 /* this */
            aload 1 /* annJoin */
            invokeinterface javax.persistence.JoinColumn.name:()Ljava/lang/String;
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setLogicalColumnName:(Ljava/lang/String;)V
         8: .line 305
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* annJoin */
            invokeinterface javax.persistence.JoinColumn.nullable:()Z
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setNullable:(Z)V
         9: .line 306
            aload 0 /* this */
            aload 1 /* annJoin */
            invokeinterface javax.persistence.JoinColumn.unique:()Z
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setUnique:(Z)V
        10: .line 307
            aload 0 /* this */
            aload 1 /* annJoin */
            invokeinterface javax.persistence.JoinColumn.insertable:()Z
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setInsertable:(Z)V
        11: .line 308
            aload 0 /* this */
            aload 1 /* annJoin */
            invokeinterface javax.persistence.JoinColumn.updatable:()Z
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setUpdatable:(Z)V
        12: .line 309
            aload 0 /* this */
            aload 1 /* annJoin */
            invokeinterface javax.persistence.JoinColumn.referencedColumnName:()Ljava/lang/String;
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setReferencedColumn:(Ljava/lang/String;)V
        13: .line 311
            aload 1 /* annJoin */
            invokeinterface javax.persistence.JoinColumn.table:()Ljava/lang/String;
            invokestatic org.hibernate.cfg.BinderHelper.isEmptyAnnotationValue:(Ljava/lang/String;)Z
            ifeq 16
        14: .line 312
            aload 0 /* this */
            ldc ""
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setExplicitTableName:(Ljava/lang/String;)V
        15: .line 313
            goto 27
        16: .line 315
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getBuildingContext:()Lorg/hibernate/boot/spi/MetadataBuildingContext;
            invokeinterface org.hibernate.boot.spi.MetadataBuildingContext.getMetadataCollector:()Lorg/hibernate/boot/spi/InFlightMetadataCollector;
        17: .line 316
            invokeinterface org.hibernate.boot.spi.InFlightMetadataCollector.getDatabase:()Lorg/hibernate/boot/model/relational/Database;
        18: .line 317
            aload 1 /* annJoin */
            invokeinterface javax.persistence.JoinColumn.table:()Ljava/lang/String;
            invokevirtual org.hibernate.boot.model.relational.Database.toIdentifier:(Ljava/lang/String;)Lorg/hibernate/boot/model/naming/Identifier;
        19: .line 315
            astore 3 /* logicalIdentifier */
        start local 3 // org.hibernate.boot.model.naming.Identifier logicalIdentifier
        20: .line 318
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getBuildingContext:()Lorg/hibernate/boot/spi/MetadataBuildingContext;
            invokeinterface org.hibernate.boot.spi.MetadataBuildingContext.getBuildingOptions:()Lorg/hibernate/boot/spi/MetadataBuildingOptions;
        21: .line 319
            invokeinterface org.hibernate.boot.spi.MetadataBuildingOptions.getPhysicalNamingStrategy:()Lorg/hibernate/boot/model/naming/PhysicalNamingStrategy;
        22: .line 320
            aload 3 /* logicalIdentifier */
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getBuildingContext:()Lorg/hibernate/boot/spi/MetadataBuildingContext;
            invokeinterface org.hibernate.boot.spi.MetadataBuildingContext.getMetadataCollector:()Lorg/hibernate/boot/spi/InFlightMetadataCollector;
            invokeinterface org.hibernate.boot.spi.InFlightMetadataCollector.getDatabase:()Lorg/hibernate/boot/model/relational/Database;
            invokevirtual org.hibernate.boot.model.relational.Database.getJdbcEnvironment:()Lorg/hibernate/engine/jdbc/env/spi/JdbcEnvironment;
            invokeinterface org.hibernate.boot.model.naming.PhysicalNamingStrategy.toPhysicalTableName:(Lorg/hibernate/boot/model/naming/Identifier;Lorg/hibernate/engine/jdbc/env/spi/JdbcEnvironment;)Lorg/hibernate/boot/model/naming/Identifier;
        23: .line 318
            astore 4 /* physicalIdentifier */
        start local 4 // org.hibernate.boot.model.naming.Identifier physicalIdentifier
        24: .line 321
            aload 0 /* this */
        25: .line 322
            aload 4 /* physicalIdentifier */
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getBuildingContext:()Lorg/hibernate/boot/spi/MetadataBuildingContext;
            invokeinterface org.hibernate.boot.spi.MetadataBuildingContext.getMetadataCollector:()Lorg/hibernate/boot/spi/InFlightMetadataCollector;
            invokeinterface org.hibernate.boot.spi.InFlightMetadataCollector.getDatabase:()Lorg/hibernate/boot/model/relational/Database;
            invokevirtual org.hibernate.boot.model.relational.Database.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokevirtual org.hibernate.boot.model.naming.Identifier.render:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
        26: .line 321
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setExplicitTableName:(Ljava/lang/String;)V
        end local 4 // org.hibernate.boot.model.naming.Identifier physicalIdentifier
        end local 3 // org.hibernate.boot.model.naming.Identifier logicalIdentifier
        27: .line 326
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String defaultName
        end local 1 // javax.persistence.JoinColumn annJoin
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   28     0                this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0   28     1             annJoin  Ljavax/persistence/JoinColumn;
            0   28     2         defaultName  Ljava/lang/String;
           20   27     3   logicalIdentifier  Lorg/hibernate/boot/model/naming/Identifier;
           24   27     4  physicalIdentifier  Lorg/hibernate/boot/model/naming/Identifier;
    MethodParameters:
             Name  Flags
      annJoin      
      defaultName  

  public static org.hibernate.cfg.Ejb3JoinColumn buildJoinColumn(javax.persistence.PrimaryKeyJoinColumn, javax.persistence.JoinColumn, org.hibernate.mapping.Value, java.util.Map<java.lang.String, org.hibernate.mapping.Join>, org.hibernate.cfg.PropertyHolder, org.hibernate.boot.spi.MetadataBuildingContext);
    descriptor: (Ljavax/persistence/PrimaryKeyJoinColumn;Ljavax/persistence/JoinColumn;Lorg/hibernate/mapping/Value;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Lorg/hibernate/boot/spi/MetadataBuildingContext;)Lorg/hibernate/cfg/Ejb3JoinColumn;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=16, locals=14, args_size=6
        start local 0 // javax.persistence.PrimaryKeyJoinColumn pkJoinAnn
        start local 1 // javax.persistence.JoinColumn joinAnn
        start local 2 // org.hibernate.mapping.Value identifier
        start local 3 // java.util.Map joins
        start local 4 // org.hibernate.cfg.PropertyHolder propertyHolder
        start local 5 // org.hibernate.boot.spi.MetadataBuildingContext context
         0: .line 339
            aload 5 /* context */
            invokeinterface org.hibernate.boot.spi.MetadataBuildingContext.getObjectNameNormalizer:()Lorg/hibernate/boot/model/naming/ObjectNameNormalizer;
            astore 6 /* normalizer */
        start local 6 // org.hibernate.boot.model.naming.ObjectNameNormalizer normalizer
         1: .line 341
            aload 2 /* identifier */
            invokeinterface org.hibernate.mapping.Value.getColumnIterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Column
            astore 7 /* col */
        start local 7 // org.hibernate.mapping.Column col
         2: .line 342
            aload 5 /* context */
            invokeinterface org.hibernate.boot.spi.MetadataBuildingContext.getMetadataCollector:()Lorg/hibernate/boot/spi/InFlightMetadataCollector;
         3: .line 343
            aload 2 /* identifier */
            invokeinterface org.hibernate.mapping.Value.getTable:()Lorg/hibernate/mapping/Table;
         4: .line 344
            aload 7 /* col */
            invokevirtual org.hibernate.mapping.Column.getQuotedName:()Ljava/lang/String;
         5: .line 342
            invokeinterface org.hibernate.boot.spi.InFlightMetadataCollector.getLogicalColumnName:(Lorg/hibernate/mapping/Table;Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* defaultName */
        start local 8 // java.lang.String defaultName
         6: .line 347
            aload 0 /* pkJoinAnn */
            ifnonnull 7
            aload 1 /* joinAnn */
            ifnull 39
         7: .line 351
      StackMap locals: org.hibernate.boot.model.naming.ObjectNameNormalizer org.hibernate.mapping.Column java.lang.String
      StackMap stack:
            aload 0 /* pkJoinAnn */
            ifnull 12
         8: .line 352
            aload 0 /* pkJoinAnn */
            invokeinterface javax.persistence.PrimaryKeyJoinColumn.name:()Ljava/lang/String;
            astore 9 /* colName */
        start local 9 // java.lang.String colName
         9: .line 353
            aload 0 /* pkJoinAnn */
            invokeinterface javax.persistence.PrimaryKeyJoinColumn.columnDefinition:()Ljava/lang/String;
            astore 10 /* columnDefinition */
        start local 10 // java.lang.String columnDefinition
        10: .line 354
            aload 0 /* pkJoinAnn */
            invokeinterface javax.persistence.PrimaryKeyJoinColumn.referencedColumnName:()Ljava/lang/String;
            astore 11 /* referencedColumnName */
        start local 11 // java.lang.String referencedColumnName
        11: .line 355
            goto 15
        end local 11 // java.lang.String referencedColumnName
        end local 10 // java.lang.String columnDefinition
        end local 9 // java.lang.String colName
        12: .line 357
      StackMap locals:
      StackMap stack:
            aload 1 /* joinAnn */
            invokeinterface javax.persistence.JoinColumn.name:()Ljava/lang/String;
            astore 9 /* colName */
        start local 9 // java.lang.String colName
        13: .line 358
            aload 1 /* joinAnn */
            invokeinterface javax.persistence.JoinColumn.columnDefinition:()Ljava/lang/String;
            astore 10 /* columnDefinition */
        start local 10 // java.lang.String columnDefinition
        14: .line 359
            aload 1 /* joinAnn */
            invokeinterface javax.persistence.JoinColumn.referencedColumnName:()Ljava/lang/String;
            astore 11 /* referencedColumnName */
        start local 11 // java.lang.String referencedColumnName
        15: .line 363
      StackMap locals: java.lang.String java.lang.String java.lang.String
      StackMap stack:
            aload 10 /* columnDefinition */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        16: .line 364
            aconst_null
            astore 12 /* sqlType */
        start local 12 // java.lang.String sqlType
        17: .line 365
            goto 19
        end local 12 // java.lang.String sqlType
        18: .line 367
      StackMap locals:
      StackMap stack:
            aload 6 /* normalizer */
            aload 10 /* columnDefinition */
            invokevirtual org.hibernate.boot.model.naming.ObjectNameNormalizer.toDatabaseIdentifierText:(Ljava/lang/String;)Ljava/lang/String;
            astore 12 /* sqlType */
        start local 12 // java.lang.String sqlType
        19: .line 371
      StackMap locals: java.lang.String
      StackMap stack:
            ldc ""
            aload 9 /* colName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 22
        20: .line 372
            aload 6 /* normalizer */
            aload 8 /* defaultName */
            invokevirtual org.hibernate.boot.model.naming.ObjectNameNormalizer.normalizeIdentifierQuotingAsString:(Ljava/lang/String;)Ljava/lang/String;
            astore 13 /* name */
        start local 13 // java.lang.String name
        21: .line 373
            goto 23
        end local 13 // java.lang.String name
        22: .line 375
      StackMap locals:
      StackMap stack:
            aload 5 /* context */
            invokeinterface org.hibernate.boot.spi.MetadataBuildingContext.getObjectNameNormalizer:()Lorg/hibernate/boot/model/naming/ObjectNameNormalizer;
            aload 9 /* colName */
            invokevirtual org.hibernate.boot.model.naming.ObjectNameNormalizer.normalizeIdentifierQuotingAsString:(Ljava/lang/String;)Ljava/lang/String;
            astore 13 /* name */
        start local 13 // java.lang.String name
        23: .line 377
      StackMap locals: java.lang.String
      StackMap stack:
            new org.hibernate.cfg.Ejb3JoinColumn
            dup
        24: .line 378
            aload 12 /* sqlType */
        25: .line 379
            aload 13 /* name */
        26: .line 380
            iconst_0
        27: .line 381
            iconst_0
        28: .line 382
            iconst_1
        29: .line 383
            iconst_1
        30: .line 384
            aload 11 /* referencedColumnName */
        31: .line 385
            aconst_null
        32: .line 386
            aload 3 /* joins */
        33: .line 387
            aload 4 /* propertyHolder */
        34: .line 388
            aconst_null
        35: .line 389
            aconst_null
        36: .line 390
            iconst_0
        37: .line 391
            aload 5 /* context */
        38: .line 377
            invokespecial org.hibernate.cfg.Ejb3JoinColumn.<init>:(Ljava/lang/String;Ljava/lang/String;ZZZZLjava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Ljava/lang/String;ZLorg/hibernate/boot/spi/MetadataBuildingContext;)V
            areturn
        end local 13 // java.lang.String name
        end local 12 // java.lang.String sqlType
        end local 11 // java.lang.String referencedColumnName
        end local 10 // java.lang.String columnDefinition
        end local 9 // java.lang.String colName
        39: .line 395
      StackMap locals: javax.persistence.PrimaryKeyJoinColumn javax.persistence.JoinColumn org.hibernate.mapping.Value java.util.Map org.hibernate.cfg.PropertyHolder org.hibernate.boot.spi.MetadataBuildingContext org.hibernate.boot.model.naming.ObjectNameNormalizer org.hibernate.mapping.Column java.lang.String
      StackMap stack:
            aload 5 /* context */
            invokeinterface org.hibernate.boot.spi.MetadataBuildingContext.getObjectNameNormalizer:()Lorg/hibernate/boot/model/naming/ObjectNameNormalizer;
            aload 8 /* defaultName */
            invokevirtual org.hibernate.boot.model.naming.ObjectNameNormalizer.normalizeIdentifierQuotingAsString:(Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* defaultName */
        40: .line 396
            new org.hibernate.cfg.Ejb3JoinColumn
            dup
        41: .line 397
            aconst_null
        42: .line 398
            aload 8 /* defaultName */
        43: .line 399
            iconst_0
        44: .line 400
            iconst_0
        45: .line 401
            iconst_1
        46: .line 402
            iconst_1
        47: .line 403
            aconst_null
        48: .line 404
            aconst_null
        49: .line 405
            aload 3 /* joins */
        50: .line 406
            aload 4 /* propertyHolder */
        51: .line 407
            aconst_null
        52: .line 408
            aconst_null
        53: .line 409
            iconst_1
        54: .line 410
            aload 5 /* context */
        55: .line 396
            invokespecial org.hibernate.cfg.Ejb3JoinColumn.<init>:(Ljava/lang/String;Ljava/lang/String;ZZZZLjava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Ljava/lang/String;ZLorg/hibernate/boot/spi/MetadataBuildingContext;)V
            areturn
        end local 8 // java.lang.String defaultName
        end local 7 // org.hibernate.mapping.Column col
        end local 6 // org.hibernate.boot.model.naming.ObjectNameNormalizer normalizer
        end local 5 // org.hibernate.boot.spi.MetadataBuildingContext context
        end local 4 // org.hibernate.cfg.PropertyHolder propertyHolder
        end local 3 // java.util.Map joins
        end local 2 // org.hibernate.mapping.Value identifier
        end local 1 // javax.persistence.JoinColumn joinAnn
        end local 0 // javax.persistence.PrimaryKeyJoinColumn pkJoinAnn
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   56     0             pkJoinAnn  Ljavax/persistence/PrimaryKeyJoinColumn;
            0   56     1               joinAnn  Ljavax/persistence/JoinColumn;
            0   56     2            identifier  Lorg/hibernate/mapping/Value;
            0   56     3                 joins  Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;
            0   56     4        propertyHolder  Lorg/hibernate/cfg/PropertyHolder;
            0   56     5               context  Lorg/hibernate/boot/spi/MetadataBuildingContext;
            1   56     6            normalizer  Lorg/hibernate/boot/model/naming/ObjectNameNormalizer;
            2   56     7                   col  Lorg/hibernate/mapping/Column;
            6   56     8           defaultName  Ljava/lang/String;
            9   12     9               colName  Ljava/lang/String;
           13   39     9               colName  Ljava/lang/String;
           10   12    10      columnDefinition  Ljava/lang/String;
           14   39    10      columnDefinition  Ljava/lang/String;
           11   12    11  referencedColumnName  Ljava/lang/String;
           15   39    11  referencedColumnName  Ljava/lang/String;
           17   18    12               sqlType  Ljava/lang/String;
           19   39    12               sqlType  Ljava/lang/String;
           21   22    13                  name  Ljava/lang/String;
           23   39    13                  name  Ljava/lang/String;
    Signature: (Ljavax/persistence/PrimaryKeyJoinColumn;Ljavax/persistence/JoinColumn;Lorg/hibernate/mapping/Value;Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;Lorg/hibernate/cfg/PropertyHolder;Lorg/hibernate/boot/spi/MetadataBuildingContext;)Lorg/hibernate/cfg/Ejb3JoinColumn;
    MethodParameters:
                Name  Flags
      pkJoinAnn       
      joinAnn         
      identifier      
      joins           
      propertyHolder  
      context         

  public void setPersistentClass(org.hibernate.mapping.PersistentClass, java.util.Map<java.lang.String, org.hibernate.mapping.Join>, java.util.Map<org.hibernate.annotations.common.reflection.XClass, org.hibernate.cfg.InheritanceState>);
    descriptor: (Lorg/hibernate/mapping/PersistentClass;Ljava/util/Map;Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // org.hibernate.mapping.PersistentClass persistentClass
        start local 2 // java.util.Map joins
        start local 3 // java.util.Map inheritanceStatePerClass
         0: .line 424
            aload 0 /* this */
         1: .line 425
            aload 1 /* persistentClass */
         2: .line 426
            aload 2 /* joins */
         3: .line 427
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getBuildingContext:()Lorg/hibernate/boot/spi/MetadataBuildingContext;
         4: .line 428
            aload 3 /* inheritanceStatePerClass */
         5: .line 424
            invokestatic org.hibernate.cfg.PropertyHolderBuilder.buildPropertyHolder:(Lorg/hibernate/mapping/PersistentClass;Ljava/util/Map;Lorg/hibernate/boot/spi/MetadataBuildingContext;Ljava/util/Map;)Lorg/hibernate/cfg/PropertyHolder;
            putfield org.hibernate.cfg.Ejb3JoinColumn.propertyHolder:Lorg/hibernate/cfg/PropertyHolder;
         6: .line 430
            return
        end local 3 // java.util.Map inheritanceStatePerClass
        end local 2 // java.util.Map joins
        end local 1 // org.hibernate.mapping.PersistentClass persistentClass
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    7     0                      this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0    7     1           persistentClass  Lorg/hibernate/mapping/PersistentClass;
            0    7     2                     joins  Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;
            0    7     3  inheritanceStatePerClass  Ljava/util/Map<Lorg/hibernate/annotations/common/reflection/XClass;Lorg/hibernate/cfg/InheritanceState;>;
    Signature: (Lorg/hibernate/mapping/PersistentClass;Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;Ljava/util/Map<Lorg/hibernate/annotations/common/reflection/XClass;Lorg/hibernate/cfg/InheritanceState;>;)V
    MethodParameters:
                          Name  Flags
      persistentClass           
      joins                     
      inheritanceStatePerClass  

  public static void checkIfJoinColumn(java.lang.Object, org.hibernate.cfg.PropertyHolder, org.hibernate.cfg.PropertyData);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/cfg/PropertyHolder;Lorg/hibernate/cfg/PropertyData;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.lang.Object columns
        start local 1 // org.hibernate.cfg.PropertyHolder holder
        start local 2 // org.hibernate.cfg.PropertyData property
         0: .line 433
            aload 0 /* columns */
            instanceof org.hibernate.cfg.Ejb3JoinColumn[]
            ifne 8
         1: .line 434
            new org.hibernate.AnnotationException
            dup
         2: .line 435
            new java.lang.StringBuilder
            dup
            ldc "@Column cannot be used on an association property: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 436
            aload 1 /* holder */
            invokeinterface org.hibernate.cfg.PropertyHolder.getEntityName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 437
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 438
            aload 2 /* property */
            invokeinterface org.hibernate.cfg.PropertyData.getPropertyName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 435
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 434
            invokespecial org.hibernate.AnnotationException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 441
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.hibernate.cfg.PropertyData property
        end local 1 // org.hibernate.cfg.PropertyHolder holder
        end local 0 // java.lang.Object columns
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0   columns  Ljava/lang/Object;
            0    9     1    holder  Lorg/hibernate/cfg/PropertyHolder;
            0    9     2  property  Lorg/hibernate/cfg/PropertyData;
    MethodParameters:
          Name  Flags
      columns   
      holder    
      property  

  public void copyReferencedStructureAndCreateDefaultJoinColumns(org.hibernate.mapping.PersistentClass, java.util.Iterator, org.hibernate.mapping.SimpleValue);
    descriptor: (Lorg/hibernate/mapping/PersistentClass;Ljava/util/Iterator;Lorg/hibernate/mapping/SimpleValue;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // org.hibernate.mapping.PersistentClass referencedEntity
        start local 2 // java.util.Iterator columnIterator
        start local 3 // org.hibernate.mapping.SimpleValue value
         0: .line 449
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.isNameDeferred:()Z
            ifne 4
         1: .line 450
            new org.hibernate.AssertionFailure
            dup
            ldc "Building implicit column but the column is not implicit"
            invokespecial org.hibernate.AssertionFailure.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 453
      StackMap locals:
      StackMap stack:
            aload 2 /* columnIterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Column
            astore 4 /* synthCol */
        start local 4 // org.hibernate.mapping.Column synthCol
         3: .line 454
            aload 0 /* this */
            aload 4 /* synthCol */
            aload 1 /* referencedEntity */
            aload 3 /* value */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.linkValueUsingDefaultColumnNaming:(Lorg/hibernate/mapping/Column;Lorg/hibernate/mapping/PersistentClass;Lorg/hibernate/mapping/SimpleValue;)V
        end local 4 // org.hibernate.mapping.Column synthCol
         4: .line 452
      StackMap locals:
      StackMap stack:
            aload 2 /* columnIterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 457
            aload 0 /* this */
            aconst_null
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setMappingColumn:(Lorg/hibernate/mapping/Column;)V
         6: .line 458
            return
        end local 3 // org.hibernate.mapping.SimpleValue value
        end local 2 // java.util.Iterator columnIterator
        end local 1 // org.hibernate.mapping.PersistentClass referencedEntity
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0    7     1  referencedEntity  Lorg/hibernate/mapping/PersistentClass;
            0    7     2    columnIterator  Ljava/util/Iterator;
            0    7     3             value  Lorg/hibernate/mapping/SimpleValue;
            3    4     4          synthCol  Lorg/hibernate/mapping/Column;
    MethodParameters:
                  Name  Flags
      referencedEntity  
      columnIterator    
      value             

  public void linkValueUsingDefaultColumnNaming(org.hibernate.mapping.Column, org.hibernate.mapping.PersistentClass, org.hibernate.mapping.SimpleValue);
    descriptor: (Lorg/hibernate/mapping/Column;Lorg/hibernate/mapping/PersistentClass;Lorg/hibernate/mapping/SimpleValue;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=6, args_size=4
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // org.hibernate.mapping.Column referencedColumn
        start local 2 // org.hibernate.mapping.PersistentClass referencedEntity
        start local 3 // org.hibernate.mapping.SimpleValue value
         0: .line 464
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getBuildingContext:()Lorg/hibernate/boot/spi/MetadataBuildingContext;
            invokeinterface org.hibernate.boot.spi.MetadataBuildingContext.getMetadataCollector:()Lorg/hibernate/boot/spi/InFlightMetadataCollector;
         1: .line 465
            aload 2 /* referencedEntity */
            invokevirtual org.hibernate.mapping.PersistentClass.getTable:()Lorg/hibernate/mapping/Table;
         2: .line 466
            aload 1 /* referencedColumn */
            invokevirtual org.hibernate.mapping.Column.getQuotedName:()Ljava/lang/String;
         3: .line 464
            invokeinterface org.hibernate.boot.spi.InFlightMetadataCollector.getLogicalColumnName:(Lorg/hibernate/mapping/Table;Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* logicalReferencedColumn */
        start local 4 // java.lang.String logicalReferencedColumn
         4: .line 468
            aload 0 /* this */
            aload 2 /* referencedEntity */
            aload 4 /* logicalReferencedColumn */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.buildDefaultColumnName:(Lorg/hibernate/mapping/PersistentClass;Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* columnName */
        start local 5 // java.lang.String columnName
         5: .line 471
            aload 0 /* this */
            aload 5 /* columnName */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setLogicalColumnName:(Ljava/lang/String;)V
         6: .line 472
            aload 0 /* this */
            aload 4 /* logicalReferencedColumn */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setReferencedColumn:(Ljava/lang/String;)V
         7: .line 473
            aload 0 /* this */
         8: .line 474
            aload 5 /* columnName */
         9: .line 475
            aconst_null
            aload 1 /* referencedColumn */
            invokevirtual org.hibernate.mapping.Column.getLength:()I
        10: .line 476
            aload 1 /* referencedColumn */
            invokevirtual org.hibernate.mapping.Column.getPrecision:()I
        11: .line 477
            aload 1 /* referencedColumn */
            invokevirtual org.hibernate.mapping.Column.getScale:()I
        12: .line 478
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
            ifnull 13
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
            invokevirtual org.hibernate.mapping.Column.isNullable:()Z
            goto 14
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn org.hibernate.mapping.Column org.hibernate.mapping.PersistentClass org.hibernate.mapping.SimpleValue java.lang.String java.lang.String
      StackMap stack: org.hibernate.cfg.Ejb3JoinColumn java.lang.String null int int int
        13: iconst_0
        14: .line 479
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn org.hibernate.mapping.Column org.hibernate.mapping.PersistentClass org.hibernate.mapping.SimpleValue java.lang.String java.lang.String
      StackMap stack: org.hibernate.cfg.Ejb3JoinColumn java.lang.String null int int int int
            aload 1 /* referencedColumn */
            invokevirtual org.hibernate.mapping.Column.getSqlType:()Ljava/lang/String;
        15: .line 480
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
            ifnull 16
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
            invokevirtual org.hibernate.mapping.Column.isUnique:()Z
            goto 17
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn org.hibernate.mapping.Column org.hibernate.mapping.PersistentClass org.hibernate.mapping.SimpleValue java.lang.String java.lang.String
      StackMap stack: org.hibernate.cfg.Ejb3JoinColumn java.lang.String null int int int int java.lang.String
        16: iconst_0
        17: .line 481
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn org.hibernate.mapping.Column org.hibernate.mapping.PersistentClass org.hibernate.mapping.SimpleValue java.lang.String java.lang.String
      StackMap stack: org.hibernate.cfg.Ejb3JoinColumn java.lang.String null int int int int java.lang.String int
            iconst_0
        18: .line 473
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.initMappingColumn:(Ljava/lang/String;Ljava/lang/String;IIIZLjava/lang/String;ZZ)V
        19: .line 483
            aload 0 /* this */
            aload 3 /* value */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.linkWithValue:(Lorg/hibernate/mapping/SimpleValue;)V
        20: .line 484
            return
        end local 5 // java.lang.String columnName
        end local 4 // java.lang.String logicalReferencedColumn
        end local 3 // org.hibernate.mapping.SimpleValue value
        end local 2 // org.hibernate.mapping.PersistentClass referencedEntity
        end local 1 // org.hibernate.mapping.Column referencedColumn
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   21     0                     this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0   21     1         referencedColumn  Lorg/hibernate/mapping/Column;
            0   21     2         referencedEntity  Lorg/hibernate/mapping/PersistentClass;
            0   21     3                    value  Lorg/hibernate/mapping/SimpleValue;
            4   21     4  logicalReferencedColumn  Ljava/lang/String;
            5   21     5               columnName  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      referencedColumn  
      referencedEntity  
      value             

  public void addDefaultJoinColumnName(org.hibernate.mapping.PersistentClass, java.lang.String);
    descriptor: (Lorg/hibernate/mapping/PersistentClass;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // org.hibernate.mapping.PersistentClass referencedEntity
        start local 2 // java.lang.String logicalReferencedColumn
         0: .line 487
            aload 0 /* this */
            aload 1 /* referencedEntity */
            aload 2 /* logicalReferencedColumn */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.buildDefaultColumnName:(Lorg/hibernate/mapping/PersistentClass;Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* columnName */
        start local 3 // java.lang.String columnName
         1: .line 488
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
            aload 3 /* columnName */
            invokevirtual org.hibernate.mapping.Column.setName:(Ljava/lang/String;)V
         2: .line 489
            aload 0 /* this */
            aload 3 /* columnName */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setLogicalColumnName:(Ljava/lang/String;)V
         3: .line 490
            return
        end local 3 // java.lang.String columnName
        end local 2 // java.lang.String logicalReferencedColumn
        end local 1 // org.hibernate.mapping.PersistentClass referencedEntity
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    4     0                     this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0    4     1         referencedEntity  Lorg/hibernate/mapping/PersistentClass;
            0    4     2  logicalReferencedColumn  Ljava/lang/String;
            1    4     3               columnName  Ljava/lang/String;
    MethodParameters:
                         Name  Flags
      referencedEntity         
      logicalReferencedColumn  

  private java.lang.String buildDefaultColumnName(org.hibernate.mapping.PersistentClass, java.lang.String);
    descriptor: (Lorg/hibernate/mapping/PersistentClass;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=12, args_size=3
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // org.hibernate.mapping.PersistentClass referencedEntity
        start local 2 // java.lang.String logicalReferencedColumn
         0: .line 493
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getBuildingContext:()Lorg/hibernate/boot/spi/MetadataBuildingContext;
            invokeinterface org.hibernate.boot.spi.MetadataBuildingContext.getMetadataCollector:()Lorg/hibernate/boot/spi/InFlightMetadataCollector;
            invokeinterface org.hibernate.boot.spi.InFlightMetadataCollector.getDatabase:()Lorg/hibernate/boot/model/relational/Database;
            astore 3 /* database */
        start local 3 // org.hibernate.boot.model.relational.Database database
         1: .line 494
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getBuildingContext:()Lorg/hibernate/boot/spi/MetadataBuildingContext;
            invokeinterface org.hibernate.boot.spi.MetadataBuildingContext.getBuildingOptions:()Lorg/hibernate/boot/spi/MetadataBuildingOptions;
            invokeinterface org.hibernate.boot.spi.MetadataBuildingOptions.getImplicitNamingStrategy:()Lorg/hibernate/boot/model/naming/ImplicitNamingStrategy;
            astore 4 /* implicitNamingStrategy */
        start local 4 // org.hibernate.boot.model.naming.ImplicitNamingStrategy implicitNamingStrategy
         2: .line 495
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getBuildingContext:()Lorg/hibernate/boot/spi/MetadataBuildingContext;
            invokeinterface org.hibernate.boot.spi.MetadataBuildingContext.getBuildingOptions:()Lorg/hibernate/boot/spi/MetadataBuildingOptions;
            invokeinterface org.hibernate.boot.spi.MetadataBuildingOptions.getPhysicalNamingStrategy:()Lorg/hibernate/boot/model/naming/PhysicalNamingStrategy;
            astore 5 /* physicalNamingStrategy */
        start local 5 // org.hibernate.boot.model.naming.PhysicalNamingStrategy physicalNamingStrategy
         3: .line 498
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.mappedByTableName:Ljava/lang/String;
            ifnonnull 4
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.mappedByPropertyName:Ljava/lang/String;
            ifnonnull 4
            iconst_0
            goto 5
      StackMap locals: org.hibernate.boot.model.relational.Database org.hibernate.boot.model.naming.ImplicitNamingStrategy org.hibernate.boot.model.naming.PhysicalNamingStrategy
      StackMap stack:
         4: iconst_1
      StackMap locals:
      StackMap stack: int
         5: istore 7 /* mappedBySide */
        start local 7 // boolean mappedBySide
         6: .line 499
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getPropertyName:()Ljava/lang/String;
            ifnull 7
            iconst_1
            goto 8
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn org.hibernate.mapping.PersistentClass java.lang.String org.hibernate.boot.model.relational.Database org.hibernate.boot.model.naming.ImplicitNamingStrategy org.hibernate.boot.model.naming.PhysicalNamingStrategy top int
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 8 /* ownerSide */
        start local 8 // boolean ownerSide
         9: .line 501
            aload 2 /* logicalReferencedColumn */
            invokestatic org.hibernate.internal.util.StringHelper.isQuoted:(Ljava/lang/String;)Z
            istore 9 /* isRefColumnQuoted */
        start local 9 // boolean isRefColumnQuoted
        10: .line 502
            iload 9 /* isRefColumnQuoted */
            ifeq 12
        11: .line 503
            aload 2 /* logicalReferencedColumn */
            invokestatic org.hibernate.internal.util.StringHelper.unquote:(Ljava/lang/String;)Ljava/lang/String;
            pop
        12: .line 506
      StackMap locals: int int
      StackMap stack:
            iload 7 /* mappedBySide */
            ifeq 27
        13: .line 512
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.mappedByPropertyName:Ljava/lang/String;
            invokestatic org.hibernate.boot.model.source.spi.AttributePath.parse:(Ljava/lang/String;)Lorg/hibernate/boot/model/source/spi/AttributePath;
            astore 10 /* attributePath */
        start local 10 // org.hibernate.boot.model.source.spi.AttributePath attributePath
        14: .line 514
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getPropertyHolder:()Lorg/hibernate/cfg/PropertyHolder;
            invokeinterface org.hibernate.cfg.PropertyHolder.isEntity:()Z
            ifeq 17
        15: .line 515
            getstatic org.hibernate.boot.model.naming.ImplicitJoinColumnNameSource$Nature.ENTITY:Lorg/hibernate/boot/model/naming/ImplicitJoinColumnNameSource$Nature;
            astore 11 /* implicitNamingNature */
        start local 11 // org.hibernate.boot.model.naming.ImplicitJoinColumnNameSource$Nature implicitNamingNature
        16: .line 516
            goto 21
        end local 11 // org.hibernate.boot.model.naming.ImplicitJoinColumnNameSource$Nature implicitNamingNature
        17: .line 517
      StackMap locals: org.hibernate.boot.model.source.spi.AttributePath
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.JPA2ElementCollection:Z
            ifeq 20
        18: .line 518
            getstatic org.hibernate.boot.model.naming.ImplicitJoinColumnNameSource$Nature.ELEMENT_COLLECTION:Lorg/hibernate/boot/model/naming/ImplicitJoinColumnNameSource$Nature;
            astore 11 /* implicitNamingNature */
        start local 11 // org.hibernate.boot.model.naming.ImplicitJoinColumnNameSource$Nature implicitNamingNature
        19: .line 519
            goto 21
        end local 11 // org.hibernate.boot.model.naming.ImplicitJoinColumnNameSource$Nature implicitNamingNature
        20: .line 521
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.boot.model.naming.ImplicitJoinColumnNameSource$Nature.ENTITY_COLLECTION:Lorg/hibernate/boot/model/naming/ImplicitJoinColumnNameSource$Nature;
            astore 11 /* implicitNamingNature */
        start local 11 // org.hibernate.boot.model.naming.ImplicitJoinColumnNameSource$Nature implicitNamingNature
        21: .line 524
      StackMap locals: org.hibernate.boot.model.naming.ImplicitJoinColumnNameSource$Nature
      StackMap stack:
            aload 4 /* implicitNamingStrategy */
        22: .line 525
            new org.hibernate.cfg.Ejb3JoinColumn$1
            dup
            aload 0 /* this */
            aload 11 /* implicitNamingNature */
            aload 10 /* attributePath */
            aload 2 /* logicalReferencedColumn */
            aload 1 /* referencedEntity */
            invokespecial org.hibernate.cfg.Ejb3JoinColumn$1.<init>:(Lorg/hibernate/cfg/Ejb3JoinColumn;Lorg/hibernate/boot/model/naming/ImplicitJoinColumnNameSource$Nature;Lorg/hibernate/boot/model/source/spi/AttributePath;Ljava/lang/String;Lorg/hibernate/mapping/PersistentClass;)V
        23: .line 524
            invokeinterface org.hibernate.boot.model.naming.ImplicitNamingStrategy.determineJoinColumnName:(Lorg/hibernate/boot/model/naming/ImplicitJoinColumnNameSource;)Lorg/hibernate/boot/model/naming/Identifier;
            astore 6 /* columnIdentifier */
        start local 6 // org.hibernate.boot.model.naming.Identifier columnIdentifier
        24: .line 628
            iload 9 /* isRefColumnQuoted */
            ifne 25
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.mappedByTableName:Ljava/lang/String;
            invokestatic org.hibernate.internal.util.StringHelper.isQuoted:(Ljava/lang/String;)Z
            ifeq 56
        25: .line 629
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn org.hibernate.mapping.PersistentClass java.lang.String org.hibernate.boot.model.relational.Database org.hibernate.boot.model.naming.ImplicitNamingStrategy org.hibernate.boot.model.naming.PhysicalNamingStrategy org.hibernate.boot.model.naming.Identifier int int int org.hibernate.boot.model.source.spi.AttributePath org.hibernate.boot.model.naming.ImplicitJoinColumnNameSource$Nature
      StackMap stack:
            aload 6 /* columnIdentifier */
            invokestatic org.hibernate.boot.model.naming.Identifier.quote:(Lorg/hibernate/boot/model/naming/Identifier;)Lorg/hibernate/boot/model/naming/Identifier;
            astore 6 /* columnIdentifier */
        end local 11 // org.hibernate.boot.model.naming.ImplicitJoinColumnNameSource$Nature implicitNamingNature
        end local 10 // org.hibernate.boot.model.source.spi.AttributePath attributePath
        26: .line 631
            goto 56
        end local 6 // org.hibernate.boot.model.naming.Identifier columnIdentifier
        27: .line 632
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn org.hibernate.mapping.PersistentClass java.lang.String org.hibernate.boot.model.relational.Database org.hibernate.boot.model.naming.ImplicitNamingStrategy org.hibernate.boot.model.naming.PhysicalNamingStrategy top int int int
      StackMap stack:
            iload 8 /* ownerSide */
            ifeq 48
        28: .line 633
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getBuildingContext:()Lorg/hibernate/boot/spi/MetadataBuildingContext;
            invokeinterface org.hibernate.boot.spi.MetadataBuildingContext.getMetadataCollector:()Lorg/hibernate/boot/spi/InFlightMetadataCollector;
        29: .line 634
            aload 1 /* referencedEntity */
            invokevirtual org.hibernate.mapping.PersistentClass.getTable:()Lorg/hibernate/mapping/Table;
        30: .line 633
            invokeinterface org.hibernate.boot.spi.InFlightMetadataCollector.getLogicalTableName:(Lorg/hibernate/mapping/Table;)Ljava/lang/String;
            astore 10 /* logicalTableName */
        start local 10 // java.lang.String logicalTableName
        31: .line 638
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.JPA2ElementCollection:Z
            ifeq 34
        32: .line 639
            getstatic org.hibernate.boot.model.naming.ImplicitJoinColumnNameSource$Nature.ELEMENT_COLLECTION:Lorg/hibernate/boot/model/naming/ImplicitJoinColumnNameSource$Nature;
            astore 11 /* implicitNamingNature */
        start local 11 // org.hibernate.boot.model.naming.ImplicitJoinColumnNameSource$Nature implicitNamingNature
        33: .line 640
            goto 38
        end local 11 // org.hibernate.boot.model.naming.ImplicitJoinColumnNameSource$Nature implicitNamingNature
        34: .line 641
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getPropertyHolder:()Lorg/hibernate/cfg/PropertyHolder;
            invokeinterface org.hibernate.cfg.PropertyHolder.isEntity:()Z
            ifeq 37
        35: .line 642
            getstatic org.hibernate.boot.model.naming.ImplicitJoinColumnNameSource$Nature.ENTITY:Lorg/hibernate/boot/model/naming/ImplicitJoinColumnNameSource$Nature;
            astore 11 /* implicitNamingNature */
        start local 11 // org.hibernate.boot.model.naming.ImplicitJoinColumnNameSource$Nature implicitNamingNature
        36: .line 643
            goto 38
        end local 11 // org.hibernate.boot.model.naming.ImplicitJoinColumnNameSource$Nature implicitNamingNature
        37: .line 645
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.boot.model.naming.ImplicitJoinColumnNameSource$Nature.ENTITY_COLLECTION:Lorg/hibernate/boot/model/naming/ImplicitJoinColumnNameSource$Nature;
            astore 11 /* implicitNamingNature */
        start local 11 // org.hibernate.boot.model.naming.ImplicitJoinColumnNameSource$Nature implicitNamingNature
        38: .line 648
      StackMap locals: org.hibernate.boot.model.naming.ImplicitJoinColumnNameSource$Nature
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getBuildingContext:()Lorg/hibernate/boot/spi/MetadataBuildingContext;
            invokeinterface org.hibernate.boot.spi.MetadataBuildingContext.getBuildingOptions:()Lorg/hibernate/boot/spi/MetadataBuildingOptions;
            invokeinterface org.hibernate.boot.spi.MetadataBuildingOptions.getImplicitNamingStrategy:()Lorg/hibernate/boot/model/naming/ImplicitNamingStrategy;
        39: .line 649
            new org.hibernate.cfg.Ejb3JoinColumn$2
            dup
            aload 0 /* this */
            aload 10 /* logicalTableName */
            aload 2 /* logicalReferencedColumn */
            aload 11 /* implicitNamingNature */
            aload 1 /* referencedEntity */
            invokespecial org.hibernate.cfg.Ejb3JoinColumn$2.<init>:(Lorg/hibernate/cfg/Ejb3JoinColumn;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/boot/model/naming/ImplicitJoinColumnNameSource$Nature;Lorg/hibernate/mapping/PersistentClass;)V
        40: .line 648
            invokeinterface org.hibernate.boot.model.naming.ImplicitNamingStrategy.determineJoinColumnName:(Lorg/hibernate/boot/model/naming/ImplicitJoinColumnNameSource;)Lorg/hibernate/boot/model/naming/Identifier;
            astore 6 /* columnIdentifier */
        start local 6 // org.hibernate.boot.model.naming.Identifier columnIdentifier
        41: .line 708
            aload 6 /* columnIdentifier */
            invokevirtual org.hibernate.boot.model.naming.Identifier.getText:()Ljava/lang/String;
            ldc "_collection&&element_"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 45
        42: .line 709
            aload 6 /* columnIdentifier */
            invokevirtual org.hibernate.boot.model.naming.Identifier.getText:()Ljava/lang/String;
            ldc "_collection&&element_"
            ldc "_"
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
        43: .line 710
            aload 6 /* columnIdentifier */
            invokevirtual org.hibernate.boot.model.naming.Identifier.isQuoted:()Z
        44: .line 709
            invokestatic org.hibernate.boot.model.naming.Identifier.toIdentifier:(Ljava/lang/String;Z)Lorg/hibernate/boot/model/naming/Identifier;
            astore 6 /* columnIdentifier */
        45: .line 714
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn org.hibernate.mapping.PersistentClass java.lang.String org.hibernate.boot.model.relational.Database org.hibernate.boot.model.naming.ImplicitNamingStrategy org.hibernate.boot.model.naming.PhysicalNamingStrategy org.hibernate.boot.model.naming.Identifier int int int java.lang.String org.hibernate.boot.model.naming.ImplicitJoinColumnNameSource$Nature
      StackMap stack:
            iload 9 /* isRefColumnQuoted */
            ifne 46
            aload 10 /* logicalTableName */
            invokestatic org.hibernate.internal.util.StringHelper.isQuoted:(Ljava/lang/String;)Z
            ifeq 56
        46: .line 715
      StackMap locals:
      StackMap stack:
            aload 6 /* columnIdentifier */
            invokestatic org.hibernate.boot.model.naming.Identifier.quote:(Lorg/hibernate/boot/model/naming/Identifier;)Lorg/hibernate/boot/model/naming/Identifier;
            astore 6 /* columnIdentifier */
        end local 11 // org.hibernate.boot.model.naming.ImplicitJoinColumnNameSource$Nature implicitNamingNature
        end local 10 // java.lang.String logicalTableName
        47: .line 717
            goto 56
        end local 6 // org.hibernate.boot.model.naming.Identifier columnIdentifier
        48: .line 719
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn org.hibernate.mapping.PersistentClass java.lang.String org.hibernate.boot.model.relational.Database org.hibernate.boot.model.naming.ImplicitNamingStrategy org.hibernate.boot.model.naming.PhysicalNamingStrategy top int int int
      StackMap stack:
            aload 3 /* database */
        49: .line 720
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getBuildingContext:()Lorg/hibernate/boot/spi/MetadataBuildingContext;
            invokeinterface org.hibernate.boot.spi.MetadataBuildingContext.getMetadataCollector:()Lorg/hibernate/boot/spi/InFlightMetadataCollector;
            aload 1 /* referencedEntity */
            invokevirtual org.hibernate.mapping.PersistentClass.getTable:()Lorg/hibernate/mapping/Table;
            invokeinterface org.hibernate.boot.spi.InFlightMetadataCollector.getLogicalTableName:(Lorg/hibernate/mapping/Table;)Ljava/lang/String;
        50: .line 719
            invokevirtual org.hibernate.boot.model.relational.Database.toIdentifier:(Ljava/lang/String;)Lorg/hibernate/boot/model/naming/Identifier;
            astore 10 /* logicalTableName */
        start local 10 // org.hibernate.boot.model.naming.Identifier logicalTableName
        51: .line 724
            aload 4 /* implicitNamingStrategy */
        52: .line 725
            new org.hibernate.cfg.Ejb3JoinColumn$3
            dup
            aload 0 /* this */
            aload 10 /* logicalTableName */
            aload 3 /* database */
            aload 2 /* logicalReferencedColumn */
            invokespecial org.hibernate.cfg.Ejb3JoinColumn$3.<init>:(Lorg/hibernate/cfg/Ejb3JoinColumn;Lorg/hibernate/boot/model/naming/Identifier;Lorg/hibernate/boot/model/relational/Database;Ljava/lang/String;)V
        53: .line 724
            invokeinterface org.hibernate.boot.model.naming.ImplicitNamingStrategy.determinePrimaryKeyJoinColumnName:(Lorg/hibernate/boot/model/naming/ImplicitPrimaryKeyJoinColumnNameSource;)Lorg/hibernate/boot/model/naming/Identifier;
            astore 6 /* columnIdentifier */
        start local 6 // org.hibernate.boot.model.naming.Identifier columnIdentifier
        54: .line 743
            aload 6 /* columnIdentifier */
            invokevirtual org.hibernate.boot.model.naming.Identifier.isQuoted:()Z
            ifne 56
            iload 9 /* isRefColumnQuoted */
            ifne 55
            aload 10 /* logicalTableName */
            invokevirtual org.hibernate.boot.model.naming.Identifier.isQuoted:()Z
            ifeq 56
        55: .line 744
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn org.hibernate.mapping.PersistentClass java.lang.String org.hibernate.boot.model.relational.Database org.hibernate.boot.model.naming.ImplicitNamingStrategy org.hibernate.boot.model.naming.PhysicalNamingStrategy org.hibernate.boot.model.naming.Identifier int int int org.hibernate.boot.model.naming.Identifier
      StackMap stack:
            aload 6 /* columnIdentifier */
            invokestatic org.hibernate.boot.model.naming.Identifier.quote:(Lorg/hibernate/boot/model/naming/Identifier;)Lorg/hibernate/boot/model/naming/Identifier;
            astore 6 /* columnIdentifier */
        end local 10 // org.hibernate.boot.model.naming.Identifier logicalTableName
        56: .line 748
      StackMap locals:
      StackMap stack:
            aload 5 /* physicalNamingStrategy */
            aload 6 /* columnIdentifier */
            aload 3 /* database */
            invokevirtual org.hibernate.boot.model.relational.Database.getJdbcEnvironment:()Lorg/hibernate/engine/jdbc/env/spi/JdbcEnvironment;
            invokeinterface org.hibernate.boot.model.naming.PhysicalNamingStrategy.toPhysicalColumnName:(Lorg/hibernate/boot/model/naming/Identifier;Lorg/hibernate/engine/jdbc/env/spi/JdbcEnvironment;)Lorg/hibernate/boot/model/naming/Identifier;
        57: .line 749
            aload 3 /* database */
            invokevirtual org.hibernate.boot.model.relational.Database.getJdbcEnvironment:()Lorg/hibernate/engine/jdbc/env/spi/JdbcEnvironment;
            invokeinterface org.hibernate.engine.jdbc.env.spi.JdbcEnvironment.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokevirtual org.hibernate.boot.model.naming.Identifier.render:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
        58: .line 748
            areturn
        end local 9 // boolean isRefColumnQuoted
        end local 8 // boolean ownerSide
        end local 7 // boolean mappedBySide
        end local 6 // org.hibernate.boot.model.naming.Identifier columnIdentifier
        end local 5 // org.hibernate.boot.model.naming.PhysicalNamingStrategy physicalNamingStrategy
        end local 4 // org.hibernate.boot.model.naming.ImplicitNamingStrategy implicitNamingStrategy
        end local 3 // org.hibernate.boot.model.relational.Database database
        end local 2 // java.lang.String logicalReferencedColumn
        end local 1 // org.hibernate.mapping.PersistentClass referencedEntity
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   59     0                     this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0   59     1         referencedEntity  Lorg/hibernate/mapping/PersistentClass;
            0   59     2  logicalReferencedColumn  Ljava/lang/String;
            1   59     3                 database  Lorg/hibernate/boot/model/relational/Database;
            2   59     4   implicitNamingStrategy  Lorg/hibernate/boot/model/naming/ImplicitNamingStrategy;
            3   59     5   physicalNamingStrategy  Lorg/hibernate/boot/model/naming/PhysicalNamingStrategy;
           24   27     6         columnIdentifier  Lorg/hibernate/boot/model/naming/Identifier;
           41   48     6         columnIdentifier  Lorg/hibernate/boot/model/naming/Identifier;
           54   59     6         columnIdentifier  Lorg/hibernate/boot/model/naming/Identifier;
            6   59     7             mappedBySide  Z
            9   59     8                ownerSide  Z
           10   59     9        isRefColumnQuoted  Z
           14   26    10            attributePath  Lorg/hibernate/boot/model/source/spi/AttributePath;
           16   17    11     implicitNamingNature  Lorg/hibernate/boot/model/naming/ImplicitJoinColumnNameSource$Nature;
           19   20    11     implicitNamingNature  Lorg/hibernate/boot/model/naming/ImplicitJoinColumnNameSource$Nature;
           21   26    11     implicitNamingNature  Lorg/hibernate/boot/model/naming/ImplicitJoinColumnNameSource$Nature;
           31   47    10         logicalTableName  Ljava/lang/String;
           33   34    11     implicitNamingNature  Lorg/hibernate/boot/model/naming/ImplicitJoinColumnNameSource$Nature;
           36   37    11     implicitNamingNature  Lorg/hibernate/boot/model/naming/ImplicitJoinColumnNameSource$Nature;
           38   47    11     implicitNamingNature  Lorg/hibernate/boot/model/naming/ImplicitJoinColumnNameSource$Nature;
           51   56    10         logicalTableName  Lorg/hibernate/boot/model/naming/Identifier;
    MethodParameters:
                         Name  Flags
      referencedEntity         final
      logicalReferencedColumn  final

  public void linkValueUsingAColumnCopy(org.hibernate.mapping.Column, org.hibernate.mapping.SimpleValue);
    descriptor: (Lorg/hibernate/mapping/Column;Lorg/hibernate/mapping/SimpleValue;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=3, args_size=3
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // org.hibernate.mapping.Column column
        start local 2 // org.hibernate.mapping.SimpleValue value
         0: .line 756
            aload 0 /* this */
         1: .line 758
            aload 1 /* column */
            invokevirtual org.hibernate.mapping.Column.getQuotedName:()Ljava/lang/String;
         2: .line 759
            aconst_null
            aload 1 /* column */
            invokevirtual org.hibernate.mapping.Column.getLength:()I
         3: .line 760
            aload 1 /* column */
            invokevirtual org.hibernate.mapping.Column.getPrecision:()I
         4: .line 761
            aload 1 /* column */
            invokevirtual org.hibernate.mapping.Column.getScale:()I
         5: .line 762
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
            invokevirtual org.hibernate.mapping.Column.isNullable:()Z
         6: .line 763
            aload 1 /* column */
            invokevirtual org.hibernate.mapping.Column.getSqlType:()Ljava/lang/String;
         7: .line 764
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
            invokevirtual org.hibernate.mapping.Column.isUnique:()Z
         8: .line 765
            iconst_0
         9: .line 756
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.initMappingColumn:(Ljava/lang/String;Ljava/lang/String;IIIZLjava/lang/String;ZZ)V
        10: .line 767
            aload 0 /* this */
            aload 2 /* value */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.linkWithValue:(Lorg/hibernate/mapping/SimpleValue;)V
        11: .line 768
            return
        end local 2 // org.hibernate.mapping.SimpleValue value
        end local 1 // org.hibernate.mapping.Column column
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0   12     1  column  Lorg/hibernate/mapping/Column;
            0   12     2   value  Lorg/hibernate/mapping/SimpleValue;
    MethodParameters:
        Name  Flags
      column  
      value   

  protected void addColumnBinding(org.hibernate.mapping.SimpleValue);
    descriptor: (Lorg/hibernate/mapping/SimpleValue;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // org.hibernate.mapping.SimpleValue value
         0: .line 772
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.mappedBy:Ljava/lang/String;
            invokestatic org.hibernate.internal.util.StringHelper.isEmpty:(Ljava/lang/String;)Z
            ifeq 23
         1: .line 775
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getLogicalColumnName:()Ljava/lang/String;
            invokestatic org.hibernate.internal.util.StringHelper.isQuoted:(Ljava/lang/String;)Z
            istore 2 /* isLogicalColumnQuoted */
        start local 2 // boolean isLogicalColumnQuoted
         2: .line 777
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getBuildingContext:()Lorg/hibernate/boot/spi/MetadataBuildingContext;
            invokeinterface org.hibernate.boot.spi.MetadataBuildingContext.getObjectNameNormalizer:()Lorg/hibernate/boot/model/naming/ObjectNameNormalizer;
            astore 3 /* nameNormalizer */
        start local 3 // org.hibernate.boot.model.naming.ObjectNameNormalizer nameNormalizer
         3: .line 778
            aload 3 /* nameNormalizer */
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getLogicalColumnName:()Ljava/lang/String;
            invokevirtual org.hibernate.boot.model.naming.ObjectNameNormalizer.normalizeIdentifierQuotingAsString:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* logicalColumnName */
        start local 4 // java.lang.String logicalColumnName
         4: .line 779
            aload 3 /* nameNormalizer */
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getReferencedColumn:()Ljava/lang/String;
            invokevirtual org.hibernate.boot.model.naming.ObjectNameNormalizer.normalizeIdentifierQuotingAsString:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* referencedColumn */
        start local 5 // java.lang.String referencedColumn
         5: .line 780
            aload 4 /* logicalColumnName */
            invokestatic org.hibernate.internal.util.StringHelper.unquote:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* unquotedLogColName */
        start local 6 // java.lang.String unquotedLogColName
         6: .line 781
            aload 5 /* referencedColumn */
            invokestatic org.hibernate.internal.util.StringHelper.unquote:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* unquotedRefColumn */
        start local 7 // java.lang.String unquotedRefColumn
         7: .line 783
            aload 6 /* unquotedLogColName */
            invokestatic org.hibernate.internal.util.StringHelper.isNotEmpty:(Ljava/lang/String;)Z
            ifeq 9
         8: .line 784
            aload 6 /* unquotedLogColName */
            goto 10
         9: .line 785
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn org.hibernate.mapping.SimpleValue int org.hibernate.boot.model.naming.ObjectNameNormalizer java.lang.String java.lang.String java.lang.String java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getPropertyName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 95
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 7 /* unquotedRefColumn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        10: .line 783
      StackMap locals:
      StackMap stack: java.lang.String
            astore 8 /* logicalCollectionColumnName */
        start local 8 // java.lang.String logicalCollectionColumnName
        11: .line 786
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getBuildingContext:()Lorg/hibernate/boot/spi/MetadataBuildingContext;
            invokeinterface org.hibernate.boot.spi.MetadataBuildingContext.getMetadataCollector:()Lorg/hibernate/boot/spi/InFlightMetadataCollector;
        12: .line 787
            invokeinterface org.hibernate.boot.spi.InFlightMetadataCollector.getDatabase:()Lorg/hibernate/boot/model/relational/Database;
        13: .line 788
            invokevirtual org.hibernate.boot.model.relational.Database.getJdbcEnvironment:()Lorg/hibernate/engine/jdbc/env/spi/JdbcEnvironment;
        14: .line 789
            invokeinterface org.hibernate.engine.jdbc.env.spi.JdbcEnvironment.getIdentifierHelper:()Lorg/hibernate/engine/jdbc/env/spi/IdentifierHelper;
        15: .line 790
            aload 8 /* logicalCollectionColumnName */
            iload 2 /* isLogicalColumnQuoted */
            invokeinterface org.hibernate.engine.jdbc.env.spi.IdentifierHelper.toIdentifier:(Ljava/lang/String;Z)Lorg/hibernate/boot/model/naming/Identifier;
        16: .line 791
            invokevirtual org.hibernate.boot.model.naming.Identifier.render:()Ljava/lang/String;
        17: .line 786
            astore 8 /* logicalCollectionColumnName */
        18: .line 792
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getBuildingContext:()Lorg/hibernate/boot/spi/MetadataBuildingContext;
            invokeinterface org.hibernate.boot.spi.MetadataBuildingContext.getMetadataCollector:()Lorg/hibernate/boot/spi/InFlightMetadataCollector;
        19: .line 793
            aload 1 /* value */
            invokevirtual org.hibernate.mapping.SimpleValue.getTable:()Lorg/hibernate/mapping/Table;
        20: .line 794
            aload 8 /* logicalCollectionColumnName */
        21: .line 795
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
        22: .line 792
            invokeinterface org.hibernate.boot.spi.InFlightMetadataCollector.addColumnNameBinding:(Lorg/hibernate/mapping/Table;Ljava/lang/String;Lorg/hibernate/mapping/Column;)V
        end local 8 // java.lang.String logicalCollectionColumnName
        end local 7 // java.lang.String unquotedRefColumn
        end local 6 // java.lang.String unquotedLogColName
        end local 5 // java.lang.String referencedColumn
        end local 4 // java.lang.String logicalColumnName
        end local 3 // org.hibernate.boot.model.naming.ObjectNameNormalizer nameNormalizer
        end local 2 // boolean isLogicalColumnQuoted
        23: .line 798
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn org.hibernate.mapping.SimpleValue
      StackMap stack:
            return
        end local 1 // org.hibernate.mapping.SimpleValue value
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   24     0                         this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0   24     1                        value  Lorg/hibernate/mapping/SimpleValue;
            2   23     2        isLogicalColumnQuoted  Z
            3   23     3               nameNormalizer  Lorg/hibernate/boot/model/naming/ObjectNameNormalizer;
            4   23     4            logicalColumnName  Ljava/lang/String;
            5   23     5             referencedColumn  Ljava/lang/String;
            6   23     6           unquotedLogColName  Ljava/lang/String;
            7   23     7            unquotedRefColumn  Ljava/lang/String;
           11   23     8  logicalCollectionColumnName  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      value  

  public static int checkReferencedColumnsType(org.hibernate.cfg.Ejb3JoinColumn[], org.hibernate.mapping.PersistentClass, org.hibernate.boot.spi.MetadataBuildingContext);
    descriptor: ([Lorg/hibernate/cfg/Ejb3JoinColumn;Lorg/hibernate/mapping/PersistentClass;Lorg/hibernate/boot/spi/MetadataBuildingContext;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=17, args_size=3
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn[] columns
        start local 1 // org.hibernate.mapping.PersistentClass referencedEntity
        start local 2 // org.hibernate.boot.spi.MetadataBuildingContext context
         0: .line 813
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* idColumns */
        start local 3 // java.util.Set idColumns
         1: .line 814
            aload 1 /* referencedEntity */
            invokevirtual org.hibernate.mapping.PersistentClass.getKey:()Lorg/hibernate/mapping/KeyValue;
            invokeinterface org.hibernate.mapping.KeyValue.getColumnIterator:()Ljava/util/Iterator;
            astore 4 /* idColumnsIt */
        start local 4 // java.util.Iterator idColumnsIt
         2: .line 815
            goto 4
         3: .line 816
      StackMap locals: java.util.Set java.util.Iterator
      StackMap stack:
            aload 3 /* idColumns */
            aload 4 /* idColumnsIt */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Column
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         4: .line 815
      StackMap locals:
      StackMap stack:
            aload 4 /* idColumnsIt */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         5: .line 819
            iconst_0
            istore 5 /* isFkReferencedColumnName */
        start local 5 // boolean isFkReferencedColumnName
         6: .line 820
            iconst_1
            istore 6 /* noReferencedColumn */
        start local 6 // boolean noReferencedColumn
         7: .line 822
            aload 0 /* columns */
            arraylength
            ifne 8
            iconst_0
            ireturn
         8: .line 824
      StackMap locals: int int
      StackMap stack:
            aload 1 /* referencedEntity */
         9: .line 825
            aload 0 /* columns */
            iconst_0
            aaload
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getReferencedColumn:()Ljava/lang/String;
        10: .line 826
            aload 2 /* context */
        11: .line 823
            invokestatic org.hibernate.cfg.BinderHelper.findColumnOwner:(Lorg/hibernate/mapping/PersistentClass;Ljava/lang/String;Lorg/hibernate/boot/spi/MetadataBuildingContext;)Ljava/lang/Object;
            astore 7 /* columnOwner */
        start local 7 // java.lang.Object columnOwner
        12: .line 828
            aload 7 /* columnOwner */
            ifnonnull 21
        13: .line 830
            new org.hibernate.MappingException
            dup
        14: .line 831
            new java.lang.StringBuilder
            dup
            ldc "Unable to find column with logical name: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        15: .line 832
            aload 0 /* columns */
            iconst_0
            aaload
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getReferencedColumn:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* referencedEntity */
            invokevirtual org.hibernate.mapping.PersistentClass.getTable:()Lorg/hibernate/mapping/Table;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " and its related "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        16: .line 833
            ldc "supertables and secondary tables"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        17: .line 831
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        18: .line 830
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 836
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn[] org.hibernate.mapping.PersistentClass org.hibernate.boot.spi.MetadataBuildingContext java.util.Set java.util.Iterator int int java.lang.Object
      StackMap stack: org.hibernate.MappingException
            astore 8 /* e */
        start local 8 // org.hibernate.MappingException e
        20: .line 837
            new org.hibernate.cfg.RecoverableException
            dup
            aload 8 /* e */
            invokevirtual org.hibernate.MappingException.getMessage:()Ljava/lang/String;
            aload 8 /* e */
            invokespecial org.hibernate.cfg.RecoverableException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 8 // org.hibernate.MappingException e
        21: .line 840
      StackMap locals:
      StackMap stack:
            aload 7 /* columnOwner */
            instanceof org.hibernate.mapping.PersistentClass
            ifeq 23
        22: .line 841
            aload 7 /* columnOwner */
            checkcast org.hibernate.mapping.PersistentClass
            invokevirtual org.hibernate.mapping.PersistentClass.getTable:()Lorg/hibernate/mapping/Table;
            goto 24
        23: .line 842
      StackMap locals:
      StackMap stack:
            aload 7 /* columnOwner */
            checkcast org.hibernate.mapping.Join
            invokevirtual org.hibernate.mapping.Join.getTable:()Lorg/hibernate/mapping/Table;
        24: .line 840
      StackMap locals:
      StackMap stack: org.hibernate.mapping.Table
            astore 8 /* matchingTable */
        start local 8 // org.hibernate.mapping.Table matchingTable
        25: .line 844
            aload 0 /* columns */
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 47
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn[] org.hibernate.mapping.PersistentClass org.hibernate.boot.spi.MetadataBuildingContext java.util.Set java.util.Iterator int int java.lang.Object org.hibernate.mapping.Table top int int org.hibernate.cfg.Ejb3JoinColumn[]
      StackMap stack:
        26: aload 12
            iload 10
            aaload
            astore 9 /* ejb3Column */
        start local 9 // org.hibernate.cfg.Ejb3JoinColumn ejb3Column
        27: .line 845
            aload 9 /* ejb3Column */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getReferencedColumn:()Ljava/lang/String;
            astore 13 /* logicalReferencedColumnName */
        start local 13 // java.lang.String logicalReferencedColumnName
        28: .line 846
            aload 13 /* logicalReferencedColumnName */
            invokestatic org.hibernate.internal.util.StringHelper.isNotEmpty:(Ljava/lang/String;)Z
            ifeq 46
        29: .line 849
            aload 2 /* context */
            invokeinterface org.hibernate.boot.spi.MetadataBuildingContext.getMetadataCollector:()Lorg/hibernate/boot/spi/InFlightMetadataCollector;
        30: .line 850
            aload 8 /* matchingTable */
        31: .line 851
            aload 13 /* logicalReferencedColumnName */
        32: .line 849
            invokeinterface org.hibernate.boot.spi.InFlightMetadataCollector.getPhysicalColumnName:(Lorg/hibernate/mapping/Table;Ljava/lang/String;)Ljava/lang/String;
            astore 14 /* referencedColumnName */
        start local 14 // java.lang.String referencedColumnName
        33: .line 853
            goto 40
        end local 14 // java.lang.String referencedColumnName
        34: .line 854
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn[] org.hibernate.mapping.PersistentClass org.hibernate.boot.spi.MetadataBuildingContext java.util.Set java.util.Iterator int int java.lang.Object org.hibernate.mapping.Table org.hibernate.cfg.Ejb3JoinColumn int int org.hibernate.cfg.Ejb3JoinColumn[] java.lang.String
      StackMap stack: org.hibernate.MappingException
            pop
        35: .line 856
            new org.hibernate.MappingException
            dup
        36: .line 857
            new java.lang.StringBuilder
            dup
            ldc "Unable to find column with logical name: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        37: .line 858
            aload 13 /* logicalReferencedColumnName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* matchingTable */
            invokevirtual org.hibernate.mapping.Table.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        38: .line 857
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        39: .line 856
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;)V
            athrow
        start local 14 // java.lang.String referencedColumnName
        40: .line 861
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_0
            istore 6 /* noReferencedColumn */
        41: .line 862
            new org.hibernate.mapping.Column
            dup
            aload 14 /* referencedColumnName */
            invokespecial org.hibernate.mapping.Column.<init>:(Ljava/lang/String;)V
            astore 15 /* refCol */
        start local 15 // org.hibernate.mapping.Column refCol
        42: .line 863
            aload 3 /* idColumns */
            aload 15 /* refCol */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            istore 16 /* contains */
        start local 16 // boolean contains
        43: .line 864
            iload 16 /* contains */
            ifne 46
        44: .line 865
            iconst_1
            istore 5 /* isFkReferencedColumnName */
        45: .line 866
            goto 48
        end local 16 // boolean contains
        end local 15 // org.hibernate.mapping.Column refCol
        end local 14 // java.lang.String referencedColumnName
        end local 13 // java.lang.String logicalReferencedColumnName
        end local 9 // org.hibernate.cfg.Ejb3JoinColumn ejb3Column
        46: .line 844
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn[] org.hibernate.mapping.PersistentClass org.hibernate.boot.spi.MetadataBuildingContext java.util.Set java.util.Iterator int int java.lang.Object org.hibernate.mapping.Table top int int org.hibernate.cfg.Ejb3JoinColumn[]
      StackMap stack:
            iinc 10 1
      StackMap locals:
      StackMap stack:
        47: iload 10
            iload 11
            if_icmplt 26
        48: .line 870
      StackMap locals: org.hibernate.cfg.Ejb3JoinColumn[] org.hibernate.mapping.PersistentClass org.hibernate.boot.spi.MetadataBuildingContext java.util.Set java.util.Iterator int int java.lang.Object org.hibernate.mapping.Table
      StackMap stack:
            iload 5 /* isFkReferencedColumnName */
            ifeq 50
        49: .line 871
            iconst_2
            ireturn
        50: .line 873
      StackMap locals:
      StackMap stack:
            iload 6 /* noReferencedColumn */
            ifeq 52
        51: .line 874
            iconst_0
            ireturn
        52: .line 876
      StackMap locals:
      StackMap stack:
            aload 3 /* idColumns */
            invokeinterface java.util.Set.size:()I
            aload 0 /* columns */
            arraylength
            if_icmpeq 54
        53: .line 878
            iconst_2
            ireturn
        54: .line 881
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 8 // org.hibernate.mapping.Table matchingTable
        end local 7 // java.lang.Object columnOwner
        end local 6 // boolean noReferencedColumn
        end local 5 // boolean isFkReferencedColumnName
        end local 4 // java.util.Iterator idColumnsIt
        end local 3 // java.util.Set idColumns
        end local 2 // org.hibernate.boot.spi.MetadataBuildingContext context
        end local 1 // org.hibernate.mapping.PersistentClass referencedEntity
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn[] columns
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   55     0                      columns  [Lorg/hibernate/cfg/Ejb3JoinColumn;
            0   55     1             referencedEntity  Lorg/hibernate/mapping/PersistentClass;
            0   55     2                      context  Lorg/hibernate/boot/spi/MetadataBuildingContext;
            1   55     3                    idColumns  Ljava/util/Set<Lorg/hibernate/mapping/Column;>;
            2   55     4                  idColumnsIt  Ljava/util/Iterator;
            6   55     5     isFkReferencedColumnName  Z
            7   55     6           noReferencedColumn  Z
           12   55     7                  columnOwner  Ljava/lang/Object;
           20   21     8                            e  Lorg/hibernate/MappingException;
           25   55     8                matchingTable  Lorg/hibernate/mapping/Table;
           27   46     9                   ejb3Column  Lorg/hibernate/cfg/Ejb3JoinColumn;
           28   46    13  logicalReferencedColumnName  Ljava/lang/String;
           33   34    14         referencedColumnName  Ljava/lang/String;
           40   46    14         referencedColumnName  Ljava/lang/String;
           42   46    15                       refCol  Lorg/hibernate/mapping/Column;
           43   46    16                     contains  Z
      Exception table:
        from    to  target  type
          13    19      19  Class org.hibernate.MappingException
          29    33      34  Class org.hibernate.MappingException
    MethodParameters:
                  Name  Flags
      columns           
      referencedEntity  
      context           

  public void overrideFromReferencedColumnIfNecessary(org.hibernate.mapping.Column);
    descriptor: (Lorg/hibernate/mapping/Column;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // org.hibernate.mapping.Column column
         0: .line 891
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
            ifnull 7
         1: .line 894
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.sqlType:Ljava/lang/String;
            invokestatic org.hibernate.internal.util.StringHelper.isEmpty:(Ljava/lang/String;)Z
            ifeq 4
         2: .line 895
            aload 0 /* this */
            aload 1 /* column */
            invokevirtual org.hibernate.mapping.Column.getSqlType:()Ljava/lang/String;
            putfield org.hibernate.cfg.Ejb3JoinColumn.sqlType:Ljava/lang/String;
         3: .line 896
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.sqlType:Ljava/lang/String;
            invokevirtual org.hibernate.mapping.Column.setSqlType:(Ljava/lang/String;)V
         4: .line 900
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
            aload 1 /* column */
            invokevirtual org.hibernate.mapping.Column.getLength:()I
            invokevirtual org.hibernate.mapping.Column.setLength:(I)V
         5: .line 901
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
            aload 1 /* column */
            invokevirtual org.hibernate.mapping.Column.getPrecision:()I
            invokevirtual org.hibernate.mapping.Column.setPrecision:(I)V
         6: .line 902
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
            aload 1 /* column */
            invokevirtual org.hibernate.mapping.Column.getScale:()I
            invokevirtual org.hibernate.mapping.Column.setScale:(I)V
         7: .line 904
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.hibernate.mapping.Column column
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0    8     1  column  Lorg/hibernate/mapping/Column;
    MethodParameters:
        Name  Flags
      column  

  public void redefineColumnName(java.lang.String, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // java.lang.String columnName
        start local 2 // java.lang.String propertyName
        start local 3 // boolean applyNamingStrategy
         0: .line 908
            aload 1 /* columnName */
            invokestatic org.hibernate.internal.util.StringHelper.isNotEmpty:(Ljava/lang/String;)Z
            ifeq 11
         1: .line 909
            iload 3 /* applyNamingStrategy */
            ifeq 10
         2: .line 910
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
         3: .line 911
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getBuildingContext:()Lorg/hibernate/boot/spi/MetadataBuildingContext;
            invokeinterface org.hibernate.boot.spi.MetadataBuildingContext.getBuildingOptions:()Lorg/hibernate/boot/spi/MetadataBuildingOptions;
            invokeinterface org.hibernate.boot.spi.MetadataBuildingOptions.getPhysicalNamingStrategy:()Lorg/hibernate/boot/model/naming/PhysicalNamingStrategy;
         4: .line 912
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getBuildingContext:()Lorg/hibernate/boot/spi/MetadataBuildingContext;
            invokeinterface org.hibernate.boot.spi.MetadataBuildingContext.getMetadataCollector:()Lorg/hibernate/boot/spi/InFlightMetadataCollector;
            invokeinterface org.hibernate.boot.spi.InFlightMetadataCollector.getDatabase:()Lorg/hibernate/boot/model/relational/Database;
            aload 1 /* columnName */
            invokevirtual org.hibernate.boot.model.relational.Database.toIdentifier:(Ljava/lang/String;)Lorg/hibernate/boot/model/naming/Identifier;
         5: .line 913
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getBuildingContext:()Lorg/hibernate/boot/spi/MetadataBuildingContext;
            invokeinterface org.hibernate.boot.spi.MetadataBuildingContext.getMetadataCollector:()Lorg/hibernate/boot/spi/InFlightMetadataCollector;
            invokeinterface org.hibernate.boot.spi.InFlightMetadataCollector.getDatabase:()Lorg/hibernate/boot/model/relational/Database;
            invokevirtual org.hibernate.boot.model.relational.Database.getJdbcEnvironment:()Lorg/hibernate/engine/jdbc/env/spi/JdbcEnvironment;
         6: .line 911
            invokeinterface org.hibernate.boot.model.naming.PhysicalNamingStrategy.toPhysicalColumnName:(Lorg/hibernate/boot/model/naming/Identifier;Lorg/hibernate/engine/jdbc/env/spi/JdbcEnvironment;)Lorg/hibernate/boot/model/naming/Identifier;
         7: .line 914
            invokevirtual org.hibernate.boot.model.naming.Identifier.render:()Ljava/lang/String;
         8: .line 910
            invokevirtual org.hibernate.mapping.Column.setName:(Ljava/lang/String;)V
         9: .line 916
            goto 11
        10: .line 918
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getMappingColumn:()Lorg/hibernate/mapping/Column;
            aload 1 /* columnName */
            invokevirtual org.hibernate.mapping.Column.setName:(Ljava/lang/String;)V
        11: .line 921
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean applyNamingStrategy
        end local 2 // java.lang.String propertyName
        end local 1 // java.lang.String columnName
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   12     0                 this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0   12     1           columnName  Ljava/lang/String;
            0   12     2         propertyName  Ljava/lang/String;
            0   12     3  applyNamingStrategy  Z
    MethodParameters:
                     Name  Flags
      columnName           
      propertyName         
      applyNamingStrategy  

  public static org.hibernate.cfg.Ejb3JoinColumn[] buildJoinTableJoinColumns(javax.persistence.JoinColumn[], java.util.Map<java.lang.String, org.hibernate.mapping.Join>, org.hibernate.cfg.PropertyHolder, java.lang.String, java.lang.String, org.hibernate.boot.spi.MetadataBuildingContext);
    descriptor: ([Ljavax/persistence/JoinColumn;Ljava/util/Map;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/boot/spi/MetadataBuildingContext;)[Lorg/hibernate/cfg/Ejb3JoinColumn;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=11, args_size=6
        start local 0 // javax.persistence.JoinColumn[] annJoins
        start local 1 // java.util.Map secondaryTables
        start local 2 // org.hibernate.cfg.PropertyHolder propertyHolder
        start local 3 // java.lang.String propertyName
        start local 4 // java.lang.String mappedBy
        start local 5 // org.hibernate.boot.spi.MetadataBuildingContext buildingContext
         0: .line 931
            aload 0 /* annJoins */
            ifnonnull 16
         1: .line 932
            new org.hibernate.cfg.Ejb3JoinColumn
            dup
            invokespecial org.hibernate.cfg.Ejb3JoinColumn.<init>:()V
            astore 7 /* currentJoinColumn */
        start local 7 // org.hibernate.cfg.Ejb3JoinColumn currentJoinColumn
         2: .line 933
            aload 7 /* currentJoinColumn */
            iconst_1
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setImplicit:(Z)V
         3: .line 934
            aload 7 /* currentJoinColumn */
            iconst_0
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setNullable:(Z)V
         4: .line 935
            aload 7 /* currentJoinColumn */
            aload 2 /* propertyHolder */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setPropertyHolder:(Lorg/hibernate/cfg/PropertyHolder;)V
         5: .line 936
            aload 7 /* currentJoinColumn */
            aload 1 /* secondaryTables */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setJoins:(Ljava/util/Map;)V
         6: .line 937
            aload 7 /* currentJoinColumn */
            aload 5 /* buildingContext */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setBuildingContext:(Lorg/hibernate/boot/spi/MetadataBuildingContext;)V
         7: .line 938
            aload 7 /* currentJoinColumn */
         8: .line 939
            aload 2 /* propertyHolder */
            aload 3 /* propertyName */
            invokestatic org.hibernate.cfg.BinderHelper.getRelativePath:(Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;)Ljava/lang/String;
         9: .line 938
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setPropertyName:(Ljava/lang/String;)V
        10: .line 941
            aload 7 /* currentJoinColumn */
            aload 4 /* mappedBy */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setMappedBy:(Ljava/lang/String;)V
        11: .line 942
            aload 7 /* currentJoinColumn */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.bind:()V
        12: .line 944
            iconst_1
            anewarray org.hibernate.cfg.Ejb3JoinColumn
            dup
            iconst_0
        13: .line 945
            aload 7 /* currentJoinColumn */
            aastore
        14: .line 944
            astore 6 /* joinColumns */
        end local 7 // org.hibernate.cfg.Ejb3JoinColumn currentJoinColumn
        start local 6 // org.hibernate.cfg.Ejb3JoinColumn[] joinColumns
        15: .line 948
            goto 34
        end local 6 // org.hibernate.cfg.Ejb3JoinColumn[] joinColumns
        16: .line 950
      StackMap locals:
      StackMap stack:
            aload 0 /* annJoins */
            arraylength
            anewarray org.hibernate.cfg.Ejb3JoinColumn
            astore 6 /* joinColumns */
        start local 6 // org.hibernate.cfg.Ejb3JoinColumn[] joinColumns
        17: .line 952
            aload 0 /* annJoins */
            arraylength
            istore 8 /* length */
        start local 8 // int length
        18: .line 953
            iconst_0
            istore 9 /* index */
        start local 9 // int index
        19: goto 33
        20: .line 954
      StackMap locals: javax.persistence.JoinColumn[] java.util.Map org.hibernate.cfg.PropertyHolder java.lang.String java.lang.String org.hibernate.boot.spi.MetadataBuildingContext org.hibernate.cfg.Ejb3JoinColumn[] top int int
      StackMap stack:
            aload 0 /* annJoins */
            iload 9 /* index */
            aaload
            astore 7 /* annJoin */
        start local 7 // javax.persistence.JoinColumn annJoin
        21: .line 955
            new org.hibernate.cfg.Ejb3JoinColumn
            dup
            invokespecial org.hibernate.cfg.Ejb3JoinColumn.<init>:()V
            astore 10 /* currentJoinColumn */
        start local 10 // org.hibernate.cfg.Ejb3JoinColumn currentJoinColumn
        22: .line 956
            aload 10 /* currentJoinColumn */
            iconst_1
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setImplicit:(Z)V
        23: .line 957
            aload 10 /* currentJoinColumn */
            aload 2 /* propertyHolder */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setPropertyHolder:(Lorg/hibernate/cfg/PropertyHolder;)V
        24: .line 958
            aload 10 /* currentJoinColumn */
            aload 1 /* secondaryTables */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setJoins:(Ljava/util/Map;)V
        25: .line 959
            aload 10 /* currentJoinColumn */
            aload 5 /* buildingContext */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setBuildingContext:(Lorg/hibernate/boot/spi/MetadataBuildingContext;)V
        26: .line 960
            aload 10 /* currentJoinColumn */
            aload 2 /* propertyHolder */
            aload 3 /* propertyName */
            invokestatic org.hibernate.cfg.BinderHelper.getRelativePath:(Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setPropertyName:(Ljava/lang/String;)V
        27: .line 961
            aload 10 /* currentJoinColumn */
            aload 4 /* mappedBy */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setMappedBy:(Ljava/lang/String;)V
        28: .line 962
            aload 10 /* currentJoinColumn */
            aload 7 /* annJoin */
            aload 3 /* propertyName */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setJoinAnnotation:(Ljavax/persistence/JoinColumn;Ljava/lang/String;)V
        29: .line 963
            aload 10 /* currentJoinColumn */
            iconst_0
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.setNullable:(Z)V
        30: .line 965
            aload 10 /* currentJoinColumn */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.bind:()V
        31: .line 966
            aload 6 /* joinColumns */
            iload 9 /* index */
            aload 10 /* currentJoinColumn */
            aastore
        end local 10 // org.hibernate.cfg.Ejb3JoinColumn currentJoinColumn
        32: .line 953
            iinc 9 /* index */ 1
        end local 7 // javax.persistence.JoinColumn annJoin
      StackMap locals:
      StackMap stack:
        33: iload 9 /* index */
            iload 8 /* length */
            if_icmplt 20
        end local 9 // int index
        end local 8 // int length
        34: .line 969
      StackMap locals: javax.persistence.JoinColumn[] java.util.Map org.hibernate.cfg.PropertyHolder java.lang.String java.lang.String org.hibernate.boot.spi.MetadataBuildingContext org.hibernate.cfg.Ejb3JoinColumn[]
      StackMap stack:
            aload 6 /* joinColumns */
            areturn
        end local 6 // org.hibernate.cfg.Ejb3JoinColumn[] joinColumns
        end local 5 // org.hibernate.boot.spi.MetadataBuildingContext buildingContext
        end local 4 // java.lang.String mappedBy
        end local 3 // java.lang.String propertyName
        end local 2 // org.hibernate.cfg.PropertyHolder propertyHolder
        end local 1 // java.util.Map secondaryTables
        end local 0 // javax.persistence.JoinColumn[] annJoins
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   35     0           annJoins  [Ljavax/persistence/JoinColumn;
            0   35     1    secondaryTables  Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;
            0   35     2     propertyHolder  Lorg/hibernate/cfg/PropertyHolder;
            0   35     3       propertyName  Ljava/lang/String;
            0   35     4           mappedBy  Ljava/lang/String;
            0   35     5    buildingContext  Lorg/hibernate/boot/spi/MetadataBuildingContext;
           15   16     6        joinColumns  [Lorg/hibernate/cfg/Ejb3JoinColumn;
           17   35     6        joinColumns  [Lorg/hibernate/cfg/Ejb3JoinColumn;
            2   15     7  currentJoinColumn  Lorg/hibernate/cfg/Ejb3JoinColumn;
           21   33     7            annJoin  Ljavax/persistence/JoinColumn;
           18   34     8             length  I
           19   34     9              index  I
           22   32    10  currentJoinColumn  Lorg/hibernate/cfg/Ejb3JoinColumn;
    Signature: ([Ljavax/persistence/JoinColumn;Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/mapping/Join;>;Lorg/hibernate/cfg/PropertyHolder;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/boot/spi/MetadataBuildingContext;)[Lorg/hibernate/cfg/Ejb3JoinColumn;
    MethodParameters:
                 Name  Flags
      annJoins         
      secondaryTables  
      propertyHolder   
      propertyName     
      mappedBy         
      buildingContext  

  public void setMappedBy(java.lang.String, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
        start local 1 // java.lang.String entityName
        start local 2 // java.lang.String jpaEntityName
        start local 3 // java.lang.String logicalTableName
        start local 4 // java.lang.String mappedByProperty
         0: .line 973
            aload 0 /* this */
            aload 1 /* entityName */
            putfield org.hibernate.cfg.Ejb3JoinColumn.mappedByEntityName:Ljava/lang/String;
         1: .line 974
            aload 0 /* this */
            aload 2 /* jpaEntityName */
            putfield org.hibernate.cfg.Ejb3JoinColumn.mappedByJpaEntityName:Ljava/lang/String;
         2: .line 975
            aload 0 /* this */
            aload 3 /* logicalTableName */
            putfield org.hibernate.cfg.Ejb3JoinColumn.mappedByTableName:Ljava/lang/String;
         3: .line 976
            aload 0 /* this */
            aload 4 /* mappedByProperty */
            putfield org.hibernate.cfg.Ejb3JoinColumn.mappedByPropertyName:Ljava/lang/String;
         4: .line 977
            return
        end local 4 // java.lang.String mappedByProperty
        end local 3 // java.lang.String logicalTableName
        end local 2 // java.lang.String jpaEntityName
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0              this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            0    5     1        entityName  Ljava/lang/String;
            0    5     2     jpaEntityName  Ljava/lang/String;
            0    5     3  logicalTableName  Ljava/lang/String;
            0    5     4  mappedByProperty  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      entityName        
      jpaEntityName     
      logicalTableName  
      mappedByProperty  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.hibernate.cfg.Ejb3JoinColumn this
         0: .line 981
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 982
            aload 1 /* sb */
            ldc "Ejb3JoinColumn"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 983
            aload 1 /* sb */
            ldc "{logicalColumnName='"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.hibernate.cfg.Ejb3JoinColumn.getLogicalColumnName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 39
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         3: .line 984
            aload 1 /* sb */
            ldc ", referencedColumn='"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.referencedColumn:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 39
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         4: .line 985
            aload 1 /* sb */
            ldc ", mappedBy='"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.cfg.Ejb3JoinColumn.mappedBy:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 39
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         5: .line 986
            aload 1 /* sb */
            bipush 125
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         6: .line 987
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // org.hibernate.cfg.Ejb3JoinColumn this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/hibernate/cfg/Ejb3JoinColumn;
            1    7     1    sb  Ljava/lang/StringBuilder;
}
SourceFile: "Ejb3JoinColumn.java"
NestMembers:
  org.hibernate.cfg.Ejb3JoinColumn$1  org.hibernate.cfg.Ejb3JoinColumn$1$1  org.hibernate.cfg.Ejb3JoinColumn$2  org.hibernate.cfg.Ejb3JoinColumn$2$1  org.hibernate.cfg.Ejb3JoinColumn$3
InnerClasses:
  public final Nature = org.hibernate.boot.model.naming.ImplicitJoinColumnNameSource$Nature of org.hibernate.boot.model.naming.ImplicitJoinColumnNameSource
  org.hibernate.cfg.Ejb3JoinColumn$1
  org.hibernate.cfg.Ejb3JoinColumn$2
  org.hibernate.cfg.Ejb3JoinColumn$3