@@ -776,72 +776,63 @@ private static Member resolveMappedSuperclassMember(
776
776
Property property ,
777
777
MappedSuperclassDomainType <?> ownerType ,
778
778
MetadataContext metadataContext ) {
779
- final EntityPersister declaringEntity = getDeclaringEntity ( (AbstractIdentifiableType <?>) ownerType , metadataContext );
780
- if ( declaringEntity != null ) {
781
- return resolveEntityMember ( property , declaringEntity );
782
- }
783
- else {
784
- final ManagedDomainType <?> subType = ownerType .getSubTypes ().iterator ().next ();
785
- final Type .PersistenceType persistenceType = subType .getPersistenceType ();
786
- if ( persistenceType == Type .PersistenceType .ENTITY ) {
787
- return resolveEntityMember ( property , getDeclaringEntity ( (AbstractIdentifiableType <?>) subType , metadataContext ) );
788
- }
789
- else if ( persistenceType == Type .PersistenceType .EMBEDDABLE ) {
790
- return resolveEmbeddedMember ( property , (EmbeddableDomainType <?>) subType , metadataContext );
791
- }
792
- else if ( persistenceType == Type .PersistenceType .MAPPED_SUPERCLASS ) {
793
- return resolveMappedSuperclassMember (
794
- property ,
795
- (MappedSuperclassDomainType <?>) subType ,
796
- metadataContext
797
- );
798
- }
799
- else {
800
- throw new IllegalArgumentException ( "Unexpected sub-type: " + persistenceType );
801
- }
802
- }
779
+ return property .getGetter ( ownerType .getJavaType () ).getMember ();
803
780
}
804
781
805
782
private final MemberResolver identifierMemberResolver = (attributeContext , metadataContext ) -> {
806
783
final AbstractIdentifiableType <?> identifiableType =
807
784
(AbstractIdentifiableType <?>) attributeContext .getOwnerType ();
808
- final EntityPersister declaringEntityMapping = getDeclaringEntity ( identifiableType , metadataContext );
809
- final EntityIdentifierMapping identifierMapping = declaringEntityMapping .getIdentifierMapping ();
810
- final Property propertyMapping = attributeContext .getPropertyMapping ();
811
- if ( !propertyMapping .getName ().equals ( identifierMapping .getAttributeName () ) ) {
812
- // this *should* indicate processing part of an IdClass...
813
- return virtualIdentifierMemberResolver .resolveMember ( attributeContext , metadataContext );
814
- }
815
-
816
- final Getter getter = getter ( declaringEntityMapping , propertyMapping );
817
- if ( getter instanceof PropertyAccessMapImpl .GetterImpl ) {
818
- return new MapMember ( identifierMapping .getAttributeName (), identifierMapping .getJavaType ().getJavaTypeClass () );
785
+ if ( identifiableType instanceof MappedSuperclassDomainType <?> ) {
786
+ return attributeContext .getPropertyMapping ()
787
+ .getGetter ( identifiableType .getJavaType () )
788
+ .getMember ();
819
789
}
820
790
else {
821
- return getter .getMember ();
791
+ final EntityPersister declaringEntityMapping = getDeclaringEntity ( identifiableType , metadataContext );
792
+ final EntityIdentifierMapping identifierMapping = declaringEntityMapping .getIdentifierMapping ();
793
+ final Property propertyMapping = attributeContext .getPropertyMapping ();
794
+ if ( !propertyMapping .getName ().equals ( identifierMapping .getAttributeName () ) ) {
795
+ // this *should* indicate processing part of an IdClass...
796
+ return virtualIdentifierMemberResolver .resolveMember ( attributeContext , metadataContext );
797
+ }
798
+
799
+ final Getter getter = getter ( declaringEntityMapping , propertyMapping );
800
+ if ( getter instanceof PropertyAccessMapImpl .GetterImpl ) {
801
+ return new MapMember ( identifierMapping .getAttributeName (), identifierMapping .getJavaType ().getJavaTypeClass () );
802
+ }
803
+ else {
804
+ return getter .getMember ();
805
+ }
822
806
}
823
807
};
824
808
825
809
private final MemberResolver versionMemberResolver = (attributeContext , metadataContext ) -> {
826
810
final AbstractIdentifiableType <?> identifiableType =
827
811
(AbstractIdentifiableType <?>) attributeContext .getOwnerType ();
828
- final EntityPersister entityPersister = getDeclaringEntity ( identifiableType , metadataContext );
829
- final EntityVersionMapping versionMapping = entityPersister .getVersionMapping ();
830
- assert entityPersister .isVersioned ();
831
- assert versionMapping != null ;
832
-
833
- final String versionPropertyName = attributeContext .getPropertyMapping ().getName ();
834
- if ( !versionPropertyName .equals ( versionMapping .getVersionAttribute ().getAttributeName () ) ) {
835
- // this should never happen, but to be safe...
836
- throw new IllegalArgumentException ( "Given property did not match declared version property" );
837
- }
838
-
839
- final Getter getter = getter ( entityPersister , attributeContext .getPropertyMapping () );
840
- if ( getter instanceof PropertyAccessMapImpl .GetterImpl ) {
841
- return new MapMember ( versionPropertyName , versionMapping .getJavaType ().getJavaTypeClass () );
812
+ if ( identifiableType instanceof MappedSuperclassDomainType <?> ) {
813
+ return attributeContext .getPropertyMapping ()
814
+ .getGetter ( identifiableType .getJavaType () )
815
+ .getMember ();
842
816
}
843
817
else {
844
- return getter .getMember ();
818
+ final EntityPersister entityPersister = getDeclaringEntity ( identifiableType , metadataContext );
819
+ final EntityVersionMapping versionMapping = entityPersister .getVersionMapping ();
820
+ assert entityPersister .isVersioned ();
821
+ assert versionMapping != null ;
822
+
823
+ final String versionPropertyName = attributeContext .getPropertyMapping ().getName ();
824
+ if ( !versionPropertyName .equals ( versionMapping .getVersionAttribute ().getAttributeName () ) ) {
825
+ // this should never happen, but to be safe...
826
+ throw new IllegalArgumentException ( "Given property did not match declared version property" );
827
+ }
828
+
829
+ final Getter getter = getter ( entityPersister , attributeContext .getPropertyMapping () );
830
+ if ( getter instanceof PropertyAccessMapImpl .GetterImpl ) {
831
+ return new MapMember ( versionPropertyName , versionMapping .getJavaType ().getJavaTypeClass () );
832
+ }
833
+ else {
834
+ return getter .getMember ();
835
+ }
845
836
}
846
837
};
847
838
0 commit comments