use of org.hibernate.boot.jaxb.mapping.spi.JaxbIdClass in project hibernate-orm by hibernate.
the class JPAXMLOverriddenAnnotationReader method getIdClass.
private IdClass getIdClass(ManagedType root, XMLContext.Default defaults) {
JaxbIdClass element = root instanceof EntityOrMappedSuperclass ? ((EntityOrMappedSuperclass) root).getIdClass() : null;
if (element != null) {
String className = element.getClazz();
if (className != null) {
AnnotationDescriptor ad = new AnnotationDescriptor(IdClass.class);
Class<?> clazz;
try {
clazz = classLoaderAccess.classForName(XMLContext.buildSafeClassName(className, defaults));
} catch (ClassLoadingException e) {
throw new AnnotationException("Unable to find id-class: " + className, e);
}
ad.setValue("value", clazz);
return AnnotationFactory.create(ad);
} else {
throw new AnnotationException("id-class without class. " + SCHEMA_VALIDATION);
}
} else if (defaults.canUseJavaAnnotations()) {
return getPhysicalAnnotation(IdClass.class);
} else {
return null;
}
}
Aggregations