class org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder
  super_class: java.lang.Object
{
  private final org.hibernate.mapping.Property mappingProperty;
    descriptor: Lorg/hibernate/mapping/Property;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private java.util.List<org.hibernate.tuple.InMemoryValueGenerationStrategy> inMemoryStrategies;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lorg/hibernate/tuple/InMemoryValueGenerationStrategy;>;

  private java.util.List<org.hibernate.tuple.InDatabaseValueGenerationStrategy> inDatabaseStrategies;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lorg/hibernate/tuple/InDatabaseValueGenerationStrategy;>;

  public void <init>(org.hibernate.mapping.Property);
    descriptor: (Lorg/hibernate/mapping/Property;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder this
        start local 1 // org.hibernate.mapping.Property mappingProperty
         0: .line 550
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 551
            aload 0 /* this */
            aload 1 /* mappingProperty */
            putfield org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder.mappingProperty:Lorg/hibernate/mapping/Property;
         2: .line 552
            return
        end local 1 // org.hibernate.mapping.Property mappingProperty
        end local 0 // org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lorg/hibernate/tuple/entity/EntityMetamodel$CompositeGenerationStrategyPairBuilder;
            0    3     1  mappingProperty  Lorg/hibernate/mapping/Property;
    MethodParameters:
                 Name  Flags
      mappingProperty  

  public void addPair(org.hibernate.tuple.entity.EntityMetamodel$GenerationStrategyPair);
    descriptor: (Lorg/hibernate/tuple/entity/EntityMetamodel$GenerationStrategyPair;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder this
        start local 1 // org.hibernate.tuple.entity.EntityMetamodel$GenerationStrategyPair generationStrategyPair
         0: .line 555
            aload 0 /* this */
            aload 1 /* generationStrategyPair */
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel$GenerationStrategyPair.getInMemoryStrategy:()Lorg/hibernate/tuple/InMemoryValueGenerationStrategy;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder.add:(Lorg/hibernate/tuple/InMemoryValueGenerationStrategy;)V
         1: .line 556
            aload 0 /* this */
            aload 1 /* generationStrategyPair */
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel$GenerationStrategyPair.getInDatabaseStrategy:()Lorg/hibernate/tuple/InDatabaseValueGenerationStrategy;
            invokevirtual org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder.add:(Lorg/hibernate/tuple/InDatabaseValueGenerationStrategy;)V
         2: .line 557
            return
        end local 1 // org.hibernate.tuple.entity.EntityMetamodel$GenerationStrategyPair generationStrategyPair
        end local 0 // org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    3     0                    this  Lorg/hibernate/tuple/entity/EntityMetamodel$CompositeGenerationStrategyPairBuilder;
            0    3     1  generationStrategyPair  Lorg/hibernate/tuple/entity/EntityMetamodel$GenerationStrategyPair;
    MethodParameters:
                        Name  Flags
      generationStrategyPair  

  private void add(org.hibernate.tuple.InMemoryValueGenerationStrategy);
    descriptor: (Lorg/hibernate/tuple/InMemoryValueGenerationStrategy;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder this
        start local 1 // org.hibernate.tuple.InMemoryValueGenerationStrategy inMemoryStrategy
         0: .line 560
            aload 0 /* this */
            getfield org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder.inMemoryStrategies:Ljava/util/List;
            ifnonnull 2
         1: .line 561
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder.inMemoryStrategies:Ljava/util/List;
         2: .line 563
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder.inMemoryStrategies:Ljava/util/List;
            aload 1 /* inMemoryStrategy */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 565
            aload 1 /* inMemoryStrategy */
            invokeinterface org.hibernate.tuple.InMemoryValueGenerationStrategy.getGenerationTiming:()Lorg/hibernate/tuple/GenerationTiming;
            getstatic org.hibernate.tuple.GenerationTiming.NEVER:Lorg/hibernate/tuple/GenerationTiming;
            if_acmpeq 5
         4: .line 566
            aload 0 /* this */
            iconst_1
            putfield org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder.hadInMemoryGeneration:Z
         5: .line 568
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.hibernate.tuple.InMemoryValueGenerationStrategy inMemoryStrategy
        end local 0 // org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0              this  Lorg/hibernate/tuple/entity/EntityMetamodel$CompositeGenerationStrategyPairBuilder;
            0    6     1  inMemoryStrategy  Lorg/hibernate/tuple/InMemoryValueGenerationStrategy;
    MethodParameters:
                  Name  Flags
      inMemoryStrategy  

  private void add(org.hibernate.tuple.InDatabaseValueGenerationStrategy);
    descriptor: (Lorg/hibernate/tuple/InDatabaseValueGenerationStrategy;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder this
        start local 1 // org.hibernate.tuple.InDatabaseValueGenerationStrategy inDatabaseStrategy
         0: .line 571
            aload 0 /* this */
            getfield org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder.inDatabaseStrategies:Ljava/util/List;
            ifnonnull 2
         1: .line 572
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder.inDatabaseStrategies:Ljava/util/List;
         2: .line 574
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder.inDatabaseStrategies:Ljava/util/List;
            aload 1 /* inDatabaseStrategy */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 576
            aload 1 /* inDatabaseStrategy */
            invokeinterface org.hibernate.tuple.InDatabaseValueGenerationStrategy.getGenerationTiming:()Lorg/hibernate/tuple/GenerationTiming;
            getstatic org.hibernate.tuple.GenerationTiming.NEVER:Lorg/hibernate/tuple/GenerationTiming;
            if_acmpeq 5
         4: .line 577
            aload 0 /* this */
            iconst_1
            putfield org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder.hadInDatabaseGeneration:Z
         5: .line 579
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.hibernate.tuple.InDatabaseValueGenerationStrategy inDatabaseStrategy
        end local 0 // org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    6     0                this  Lorg/hibernate/tuple/entity/EntityMetamodel$CompositeGenerationStrategyPairBuilder;
            0    6     1  inDatabaseStrategy  Lorg/hibernate/tuple/InDatabaseValueGenerationStrategy;
    MethodParameters:
                    Name  Flags
      inDatabaseStrategy  

  public org.hibernate.tuple.entity.EntityMetamodel$GenerationStrategyPair buildPair();
    descriptor: ()Lorg/hibernate/tuple/entity/EntityMetamodel$GenerationStrategyPair;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=10, args_size=1
        start local 0 // org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder this
         0: .line 582
            aload 0 /* this */
            getfield org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder.hadInMemoryGeneration:Z
            ifeq 6
            aload 0 /* this */
            getfield org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder.hadInDatabaseGeneration:Z
            ifeq 6
         1: .line 583
            new org.hibernate.tuple.entity.EntityMetamodel$ValueGenerationStrategyException
            dup
         2: .line 584
            new java.lang.StringBuilder
            dup
            ldc "Composite attribute ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder.mappingProperty:Lorg/hibernate/mapping/Property;
            invokevirtual org.hibernate.mapping.Property.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "] contained both in-memory"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 585
            ldc " and in-database value generation"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 584
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 583
            invokespecial org.hibernate.tuple.entity.EntityMetamodel$ValueGenerationStrategyException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 588
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder.hadInMemoryGeneration:Z
            ifeq 8
         7: .line 589
            new org.hibernate.cfg.NotYetImplementedException
            dup
            ldc "Still need to wire in composite in-memory value generation"
            invokespecial org.hibernate.cfg.NotYetImplementedException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 592
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder.hadInDatabaseGeneration:Z
            ifeq 48
         9: .line 593
            aload 0 /* this */
            getfield org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder.mappingProperty:Lorg/hibernate/mapping/Property;
            invokevirtual org.hibernate.mapping.Property.getValue:()Lorg/hibernate/mapping/Value;
            checkcast org.hibernate.mapping.Component
            astore 1 /* composite */
        start local 1 // org.hibernate.mapping.Component composite
        10: .line 596
            aload 0 /* this */
            getfield org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder.inDatabaseStrategies:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            aload 1 /* composite */
            invokevirtual org.hibernate.mapping.Component.getPropertySpan:()I
            if_icmpeq 16
        11: .line 597
            new org.hibernate.tuple.entity.EntityMetamodel$ValueGenerationStrategyException
            dup
        12: .line 598
            new java.lang.StringBuilder
            dup
            ldc "Internal error : mismatch between number of collected in-db generation strategies and number of attributes for composite attribute : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        13: .line 599
            aload 0 /* this */
            getfield org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder.mappingProperty:Lorg/hibernate/mapping/Property;
            invokevirtual org.hibernate.mapping.Property.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 598
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 597
            invokespecial org.hibernate.tuple.entity.EntityMetamodel$ValueGenerationStrategyException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 604
      StackMap locals: org.hibernate.mapping.Component
      StackMap stack:
            getstatic org.hibernate.tuple.GenerationTiming.INSERT:Lorg/hibernate/tuple/GenerationTiming;
            astore 2 /* timing */
        start local 2 // org.hibernate.tuple.GenerationTiming timing
        17: .line 605
            iconst_0
            istore 3 /* referenceColumns */
        start local 3 // boolean referenceColumns
        18: .line 606
            aload 1 /* composite */
            invokevirtual org.hibernate.mapping.Component.getColumnSpan:()I
            anewarray java.lang.String
            astore 4 /* columnValues */
        start local 4 // java.lang.String[] columnValues
        19: .line 609
            iconst_m1
            istore 5 /* propertyIndex */
        start local 5 // int propertyIndex
        20: .line 610
            iconst_0
            istore 6 /* columnIndex */
        start local 6 // int columnIndex
        21: .line 611
            aload 1 /* composite */
            invokevirtual org.hibernate.mapping.Component.getPropertyIterator:()Ljava/util/Iterator;
            astore 7 /* subProperties */
        start local 7 // java.util.Iterator subProperties
        22: .line 612
            goto 44
        23: .line 613
      StackMap locals: org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder org.hibernate.mapping.Component org.hibernate.tuple.GenerationTiming int java.lang.String[] int int java.util.Iterator
      StackMap stack:
            iinc 5 /* propertyIndex */ 1
        24: .line 614
            aload 7 /* subProperties */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.mapping.Property
            astore 8 /* subProperty */
        start local 8 // org.hibernate.mapping.Property subProperty
        25: .line 615
            aload 0 /* this */
            getfield org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder.inDatabaseStrategies:Ljava/util/List;
            iload 5 /* propertyIndex */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.hibernate.tuple.InDatabaseValueGenerationStrategy
            astore 9 /* subStrategy */
        start local 9 // org.hibernate.tuple.InDatabaseValueGenerationStrategy subStrategy
        26: .line 617
            aload 9 /* subStrategy */
            invokeinterface org.hibernate.tuple.InDatabaseValueGenerationStrategy.getGenerationTiming:()Lorg/hibernate/tuple/GenerationTiming;
            getstatic org.hibernate.tuple.GenerationTiming.ALWAYS:Lorg/hibernate/tuple/GenerationTiming;
            if_acmpne 28
        27: .line 619
            getstatic org.hibernate.tuple.GenerationTiming.ALWAYS:Lorg/hibernate/tuple/GenerationTiming;
            astore 2 /* timing */
        28: .line 622
      StackMap locals: org.hibernate.mapping.Property org.hibernate.tuple.InDatabaseValueGenerationStrategy
      StackMap stack:
            aload 9 /* subStrategy */
            invokeinterface org.hibernate.tuple.InDatabaseValueGenerationStrategy.referenceColumnsInSql:()Z
            ifeq 30
        29: .line 624
            iconst_1
            istore 3 /* referenceColumns */
        30: .line 626
      StackMap locals:
      StackMap stack:
            aload 9 /* subStrategy */
            invokeinterface org.hibernate.tuple.InDatabaseValueGenerationStrategy.getReferencedColumnValues:()[Ljava/lang/String;
            ifnull 44
        31: .line 627
            aload 9 /* subStrategy */
            invokeinterface org.hibernate.tuple.InDatabaseValueGenerationStrategy.getReferencedColumnValues:()[Ljava/lang/String;
            arraylength
            aload 8 /* subProperty */
            invokevirtual org.hibernate.mapping.Property.getColumnSpan:()I
            if_icmpeq 38
        32: .line 628
            new org.hibernate.tuple.entity.EntityMetamodel$ValueGenerationStrategyException
            dup
        33: .line 629
            new java.lang.StringBuilder
            dup
            ldc "Internal error : mismatch between number of collected 'referenced column values' and number of columns for composite attribute : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        34: .line 630
            aload 0 /* this */
            getfield org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder.mappingProperty:Lorg/hibernate/mapping/Property;
            invokevirtual org.hibernate.mapping.Property.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        35: .line 631
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 8 /* subProperty */
            invokevirtual org.hibernate.mapping.Property.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        36: .line 629
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        37: .line 628
            invokespecial org.hibernate.tuple.entity.EntityMetamodel$ValueGenerationStrategyException.<init>:(Ljava/lang/String;)V
            athrow
        38: .line 635
      StackMap locals:
      StackMap stack:
            aload 9 /* subStrategy */
            invokeinterface org.hibernate.tuple.InDatabaseValueGenerationStrategy.getReferencedColumnValues:()[Ljava/lang/String;
        39: .line 636
            iconst_0
        40: .line 637
            aload 4 /* columnValues */
        41: .line 638
            iload 6 /* columnIndex */
        42: .line 639
            aload 8 /* subProperty */
            invokevirtual org.hibernate.mapping.Property.getColumnSpan:()I
        43: .line 634
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        end local 9 // org.hibernate.tuple.InDatabaseValueGenerationStrategy subStrategy
        end local 8 // org.hibernate.mapping.Property subProperty
        44: .line 612
      StackMap locals:
      StackMap stack:
            aload 7 /* subProperties */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 23
        45: .line 645
            new org.hibernate.tuple.entity.EntityMetamodel$GenerationStrategyPair
            dup
        46: .line 646
            new org.hibernate.tuple.entity.EntityMetamodel$InDatabaseValueGenerationStrategyImpl
            dup
            aload 2 /* timing */
            iload 3 /* referenceColumns */
            aload 4 /* columnValues */
            invokespecial org.hibernate.tuple.entity.EntityMetamodel$InDatabaseValueGenerationStrategyImpl.<init>:(Lorg/hibernate/tuple/GenerationTiming;Z[Ljava/lang/String;)V
        47: .line 645
            invokespecial org.hibernate.tuple.entity.EntityMetamodel$GenerationStrategyPair.<init>:(Lorg/hibernate/tuple/entity/EntityMetamodel$InDatabaseValueGenerationStrategyImpl;)V
            areturn
        end local 7 // java.util.Iterator subProperties
        end local 6 // int columnIndex
        end local 5 // int propertyIndex
        end local 4 // java.lang.String[] columnValues
        end local 3 // boolean referenceColumns
        end local 2 // org.hibernate.tuple.GenerationTiming timing
        end local 1 // org.hibernate.mapping.Component composite
        48: .line 650
      StackMap locals: org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder
      StackMap stack:
            getstatic org.hibernate.tuple.entity.EntityMetamodel.NO_GEN_PAIR:Lorg/hibernate/tuple/entity/EntityMetamodel$GenerationStrategyPair;
            areturn
        end local 0 // org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   49     0              this  Lorg/hibernate/tuple/entity/EntityMetamodel$CompositeGenerationStrategyPairBuilder;
           10   48     1         composite  Lorg/hibernate/mapping/Component;
           17   48     2            timing  Lorg/hibernate/tuple/GenerationTiming;
           18   48     3  referenceColumns  Z
           19   48     4      columnValues  [Ljava/lang/String;
           20   48     5     propertyIndex  I
           21   48     6       columnIndex  I
           22   48     7     subProperties  Ljava/util/Iterator;
           25   44     8       subProperty  Lorg/hibernate/mapping/Property;
           26   44     9       subStrategy  Lorg/hibernate/tuple/InDatabaseValueGenerationStrategy;
}
SourceFile: "EntityMetamodel.java"
NestHost: org.hibernate.tuple.entity.EntityMetamodel
InnerClasses:
  private CompositeGenerationStrategyPairBuilder = org.hibernate.tuple.entity.EntityMetamodel$CompositeGenerationStrategyPairBuilder of org.hibernate.tuple.entity.EntityMetamodel
  public GenerationStrategyPair = org.hibernate.tuple.entity.EntityMetamodel$GenerationStrategyPair of org.hibernate.tuple.entity.EntityMetamodel
  private InDatabaseValueGenerationStrategyImpl = org.hibernate.tuple.entity.EntityMetamodel$InDatabaseValueGenerationStrategyImpl of org.hibernate.tuple.entity.EntityMetamodel
  public ValueGenerationStrategyException = org.hibernate.tuple.entity.EntityMetamodel$ValueGenerationStrategyException of org.hibernate.tuple.entity.EntityMetamodel