use of org.hibernate.boot.jaxb.mapping.spi.EntityOrMappedSuperclass 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;
}
}
use of org.hibernate.boot.jaxb.mapping.spi.EntityOrMappedSuperclass in project hibernate-orm by hibernate.
the class JPAXMLOverriddenAnnotationReader method getEntityListeners.
private EntityListeners getEntityListeners(ManagedType root, XMLContext.Default defaults) {
JaxbEntityListeners element = root instanceof EntityOrMappedSuperclass ? ((EntityOrMappedSuperclass) root).getEntityListeners() : null;
if (element != null) {
List<Class> entityListenerClasses = new ArrayList<>();
for (JaxbEntityListener subelement : element.getEntityListener()) {
String className = subelement.getClazz();
try {
entityListenerClasses.add(classLoaderAccess.classForName(XMLContext.buildSafeClassName(className, defaults)));
} catch (ClassLoadingException e) {
throw new AnnotationException("Unable to find class: " + className, e);
}
}
AnnotationDescriptor ad = new AnnotationDescriptor(EntityListeners.class);
ad.setValue("value", entityListenerClasses.toArray(new Class[entityListenerClasses.size()]));
return AnnotationFactory.create(ad);
} else if (defaults.canUseJavaAnnotations()) {
return getPhysicalAnnotation(EntityListeners.class);
} else {
return null;
}
}
Aggregations