use of org.hibernate.boot.jaxb.mapping.spi.JaxbBasic in project hibernate-orm by hibernate.
the class JPAXMLOverriddenAnnotationReader method getConvertsForAttribute.
private Annotation getConvertsForAttribute(PropertyMappingElementCollector elementsForProperty, XMLContext.Default defaults) {
// NOTE : we use a map here to make sure that an xml and annotation referring to the same attribute
// properly overrides. Very sparse map, yes, but easy setup.
// todo : revisit this
// although bear in mind that this code is no longer used in 5.0...
final Map<String, Convert> convertAnnotationsMap = new HashMap<>();
for (JaxbBasic element : elementsForProperty.getBasic()) {
JaxbConvert convert = element.getConvert();
if (convert != null) {
applyXmlDefinedConverts(Collections.singletonList(convert), defaults, null, convertAnnotationsMap);
}
}
for (JaxbEmbedded element : elementsForProperty.getEmbedded()) {
applyXmlDefinedConverts(element.getConvert(), defaults, propertyName, convertAnnotationsMap);
}
for (JaxbElementCollection element : elementsForProperty.getElementCollection()) {
applyXmlDefinedConverts(element.getConvert(), defaults, propertyName, convertAnnotationsMap);
}
if (defaults.canUseJavaAnnotations()) {
// todo : note sure how to best handle attributeNamePrefix here
applyPhysicalConvertAnnotations(propertyName, convertAnnotationsMap);
}
if (!convertAnnotationsMap.isEmpty()) {
final AnnotationDescriptor groupingDescriptor = new AnnotationDescriptor(Converts.class);
groupingDescriptor.setValue("value", convertAnnotationsMap.values().toArray(new Convert[convertAnnotationsMap.size()]));
return AnnotationFactory.create(groupingDescriptor);
}
return null;
}
use of org.hibernate.boot.jaxb.mapping.spi.JaxbBasic in project hibernate-orm by hibernate.
the class JPAXMLOverriddenAnnotationReader method getBasic.
private void getBasic(List<Annotation> annotationList, XMLContext.Default defaults) {
for (JaxbBasic element : elementsForProperty.getBasic()) {
Annotation annotation = buildColumns(element.getColumn(), "basic");
addIfNotNull(annotationList, annotation);
getAccessType(annotationList, element.getAccess());
getTemporal(annotationList, element.getTemporal());
getLob(annotationList, element.getLob());
getEnumerated(annotationList, element.getEnumerated());
AnnotationDescriptor basic = new AnnotationDescriptor(Basic.class);
getFetchType(basic, element.getFetch());
copyAttribute(basic, "optional", element.isOptional(), false);
annotationList.add(AnnotationFactory.create(basic));
}
if (elementsForProperty.isEmpty() && defaults.canUseJavaAnnotations()) {
// no annotation presence constraint, basic is the default
Annotation annotation = getPhysicalAnnotation(Basic.class);
addIfNotNull(annotationList, annotation);
annotation = getPhysicalAnnotation(Lob.class);
addIfNotNull(annotationList, annotation);
annotation = getPhysicalAnnotation(Enumerated.class);
addIfNotNull(annotationList, annotation);
annotation = getPhysicalAnnotation(Temporal.class);
addIfNotNull(annotationList, annotation);
annotation = getPhysicalAnnotation(Column.class);
addIfNotNull(annotationList, annotation);
annotation = getPhysicalAnnotation(Columns.class);
addIfNotNull(annotationList, annotation);
annotation = getPhysicalAnnotation(AttributeOverride.class);
addIfNotNull(annotationList, annotation);
annotation = getPhysicalAnnotation(AttributeOverrides.class);
addIfNotNull(annotationList, annotation);
annotation = getPhysicalAnnotation(AssociationOverride.class);
addIfNotNull(annotationList, annotation);
annotation = getPhysicalAnnotation(AssociationOverrides.class);
addIfNotNull(annotationList, annotation);
}
}
Aggregations