diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/internal/binder/Binder.java b/hibernate-core/src/main/java/org/hibernate/metamodel/internal/binder/Binder.java index 7e3da6c274..5efdd28009 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/internal/binder/Binder.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/internal/binder/Binder.java @@ -67,6 +67,7 @@ import org.hibernate.metamodel.internal.resolver.AssociationRelationalBindingResolver; import org.hibernate.metamodel.internal.resolver.MappedByAssociationRelationalBindingResolverImpl; import org.hibernate.metamodel.internal.resolver.StandardAssociationRelationalBindingResolverImpl; +import org.hibernate.metamodel.reflite.internal.DynamicTypeDescriptorImpl; import org.hibernate.metamodel.reflite.internal.Primitives; import org.hibernate.metamodel.reflite.spi.ClassDescriptor; import org.hibernate.metamodel.reflite.spi.FieldDescriptor; @@ -3488,14 +3489,23 @@ private void completeBinding() { } // Resolve the domain definition of the PK class - final JavaTypeDescriptor pkClassTypeDescriptor = determinePkClassTypeDescriptor( - binding.getRootEntityBinding(), - identifierSource - ); - final Aggregate pkClass = (Aggregate) localBindingContext().locateOrBuildDomainType( - pkClassTypeDescriptor, - true - ); + final Aggregate pkClass; + if ( source.getEntityMode() == EntityMode.MAP ) { + pkClass = (Aggregate) localBindingContext().locateOrBuildDomainType( + new DynamicTypeDescriptorImpl( DotName.createSimple( "CID" ), null ), + true + ); + } + else { + final JavaTypeDescriptor pkClassTypeDescriptor = determinePkClassTypeDescriptor( + binding.getRootEntityBinding(), + identifierSource + ); + pkClass = (Aggregate) localBindingContext().locateOrBuildDomainType( + pkClassTypeDescriptor, + true + ); + } // `pkAttribute` is the (domain) attribute reference for the @EmbeddedId attribute diff --git a/hibernate-envers/src/test/java/org/hibernate/envers/test/integration/ids/embeddedid/RelationInsideEmbeddableTest.java b/hibernate-envers/src/test/java/org/hibernate/envers/test/integration/ids/embeddedid/RelationInsideEmbeddableTest.java index c56fb54e0c..ced0d4bd98 100644 --- a/hibernate-envers/src/test/java/org/hibernate/envers/test/integration/ids/embeddedid/RelationInsideEmbeddableTest.java +++ b/hibernate-envers/src/test/java/org/hibernate/envers/test/integration/ids/embeddedid/RelationInsideEmbeddableTest.java @@ -1,22 +1,19 @@ package org.hibernate.envers.test.integration.ids.embeddedid; -import javax.persistence.EntityManager; import java.util.Arrays; +import javax.persistence.EntityManager; import org.hibernate.envers.test.BaseEnversJPAFunctionalTestCase; import org.hibernate.envers.test.Priority; +import org.hibernate.testing.TestForIssue; import org.junit.Assert; import org.junit.Test; -import org.hibernate.testing.FailureExpectedWithNewMetamodel; -import org.hibernate.testing.TestForIssue; - /** * @author Lukasz Antoniak (lukasz dot antoniak at gmail dot com) */ @TestForIssue(jiraKey = "HHH-7690") -@FailureExpectedWithNewMetamodel( message = "Associations with non-envers entities not supported yet." ) public class RelationInsideEmbeddableTest extends BaseEnversJPAFunctionalTestCase { private Integer orderId = null; private ItemId itemId = null;