if (checkSimpleId(attribute) && checkIdClass(managedType.getJavaType()))
{
IdClass anno = managedType.getJavaType().getAnnotation(IdClass.class);
AbstractManagedType superType = onSuperType(anno.value(), true);
onDeclaredFields(anno.value(), superType);
((AbstractIdentifiableType<X>) managedType).addIdAttribute(singularAttribute, true,
superType.getDeclaredSingularAttributes());
}
else if (checkEmbeddedId(attribute))
{
AbstractManagedType superType = onSuperType(attribute.getType(), false);
checkEmbeddable(superType.getJavaType(), attribute.getName());
((AbstractIdentifiableType<X>) managedType).addIdAttribute(singularAttribute, true,
superType.getDeclaredSingularAttributes());
}
else if (checkSimpleId(attribute))
{
((AbstractIdentifiableType<X>) managedType).addIdAttribute(singularAttribute, false, null);