mirror of
https://github.com/hibernate/hibernate-orm
synced 2025-02-17 00:24:57 +00:00
HHH-17081 Avoid error for same prop name in different inheritance types
This commit is contained in:
parent
14b1337d51
commit
21d13ecc11
@ -419,7 +419,7 @@ protected boolean shouldSkipResolveInstance(RowProcessingState rowProcessingStat
|
|||||||
.getEntityMetamodel()
|
.getEntityMetamodel()
|
||||||
.isPolymorphic() ) {
|
.isPolymorphic() ) {
|
||||||
parentInitializer.resolveKey( rowProcessingState );
|
parentInitializer.resolveKey( rowProcessingState );
|
||||||
return isReferencedModelPartInConcreteParent(
|
return !isReferencedModelPartInConcreteParent(
|
||||||
modelPart,
|
modelPart,
|
||||||
currentNavigablePath,
|
currentNavigablePath,
|
||||||
parentInitializer
|
parentInitializer
|
||||||
@ -437,7 +437,13 @@ private boolean isReferencedModelPartInConcreteParent(
|
|||||||
final EntityPersister parentConcreteDescriptor = parentInitializer.asEntityInitializer()
|
final EntityPersister parentConcreteDescriptor = parentInitializer.asEntityInitializer()
|
||||||
.getConcreteDescriptor();
|
.getConcreteDescriptor();
|
||||||
if ( parentConcreteDescriptor != null && parentConcreteDescriptor.getEntityMetamodel().isPolymorphic() ) {
|
if ( parentConcreteDescriptor != null && parentConcreteDescriptor.getEntityMetamodel().isPolymorphic() ) {
|
||||||
final ModelPart concreteModelPart = parentConcreteDescriptor.findByPath( partNavigablePath.getLocalName() );
|
final EntityMappingType entityType = modelPart.asAttributeMapping() != null ?
|
||||||
|
modelPart.asAttributeMapping().getDeclaringType().findContainingEntityMapping() :
|
||||||
|
modelPart.asEntityMappingType();
|
||||||
|
final ModelPart concreteModelPart = parentConcreteDescriptor.findSubPart(
|
||||||
|
partNavigablePath.getLocalName(),
|
||||||
|
entityType
|
||||||
|
);
|
||||||
if ( concreteModelPart == null
|
if ( concreteModelPart == null
|
||||||
|| !modelPart.getJavaType().getJavaTypeClass()
|
|| !modelPart.getJavaType().getJavaTypeClass()
|
||||||
.isAssignableFrom( concreteModelPart.getJavaType().getJavaTypeClass() ) ) {
|
.isAssignableFrom( concreteModelPart.getJavaType().getJavaTypeClass() ) ) {
|
||||||
@ -470,11 +476,11 @@ class AddressB extends Address{
|
|||||||
and for AddressB skip resolving the EntityJoinedFetchInitializer of UserA
|
and for AddressB skip resolving the EntityJoinedFetchInitializer of UserA
|
||||||
|
|
||||||
*/
|
*/
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
protected void resolveEntityInstance(
|
protected void resolveEntityInstance(
|
||||||
RowProcessingState rowProcessingState,
|
RowProcessingState rowProcessingState,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user