diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/internal/AttributeFactory.java b/hibernate-core/src/main/java/org/hibernate/metamodel/internal/AttributeFactory.java index 1b8c060a41..0f0633ed44 100755 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/internal/AttributeFactory.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/internal/AttributeFactory.java @@ -212,8 +212,15 @@ private Type getMetaModelType(ValueContext typeContext) { } case EMBEDDABLE: { final Component component = (Component) typeContext.getValue(); + Class javaType; + if ( component.getComponentClassName() == null ) { + javaType = typeContext.getBindableType(); + } + else { + javaType = component.getComponentClass(); + } final EmbeddableTypeImpl embeddableType = new EmbeddableTypeImpl( - typeContext.getBindableType(), + javaType, typeContext.getAttributeMetadata().getOwnerType(), (ComponentType) typeContext.getValue().getType() );