diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/ManyToManyCollectionPart.java b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/ManyToManyCollectionPart.java index 9b6f9a19a8..c0425887f2 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/ManyToManyCollectionPart.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/ManyToManyCollectionPart.java @@ -398,7 +398,7 @@ public class ManyToManyCollectionPart extends AbstractEntityCollectionPart imple } else if ( StringHelper.isNotEmpty( bootCollectionDescriptor.getMappedByProperty() ) ) { final ModelPart mappedByPart = resolveNamedTargetPart( bootCollectionDescriptor.getMappedByProperty(), getAssociatedEntityMappingType(), collectionDescriptor ); - if ( mappedByPart instanceof ToOneAttributeMapping ) { + if ( mappedByPart instanceof ToOneAttributeMapping || mappedByPart instanceof DiscriminatedAssociationAttributeMapping ) { //////////////////////////////////////////////// // E.g. // @@ -425,7 +425,7 @@ public class ManyToManyCollectionPart extends AbstractEntityCollectionPart imple final ManyToOne elementDescriptor = (ManyToOne) bootCollectionDescriptor.getElement(); assert elementDescriptor.isReferenceToPrimaryKey(); - final String collectionTableName = ( (BasicCollectionPersister) collectionDescriptor ).getTableName(); + final String collectionTableName = collectionDescriptor.getTableName(); // this fk will refer to the associated entity's id. if that id is not ready yet, delay this creation if ( getAssociatedEntityMappingType().getIdentifierMapping() == null ) {