Search in sources :

Example 1 with SecondaryTables

use of javax.persistence.SecondaryTables in project CloudStack-archive by CloudStack-extras.

the class DbUtil method getSecondaryTables.

public static final SecondaryTable[] getSecondaryTables(AnnotatedElement clazz) {
    SecondaryTable[] sts = null;
    SecondaryTable stAnnotation = clazz.getAnnotation(SecondaryTable.class);
    if (stAnnotation == null) {
        SecondaryTables stsAnnotation = clazz.getAnnotation(SecondaryTables.class);
        sts = stsAnnotation != null ? stsAnnotation.value() : new SecondaryTable[0];
    } else {
        sts = new SecondaryTable[] { stAnnotation };
    }
    return sts;
}
Also used : SecondaryTables(javax.persistence.SecondaryTables) SecondaryTable(javax.persistence.SecondaryTable)

Example 2 with SecondaryTables

use of javax.persistence.SecondaryTables in project cosmic by MissionCriticalCloud.

the class DbUtil method getSecondaryTables.

public static final SecondaryTable[] getSecondaryTables(final AnnotatedElement clazz) {
    SecondaryTable[] sts = null;
    final SecondaryTable stAnnotation = clazz.getAnnotation(SecondaryTable.class);
    if (stAnnotation == null) {
        final SecondaryTables stsAnnotation = clazz.getAnnotation(SecondaryTables.class);
        sts = stsAnnotation != null ? stsAnnotation.value() : new SecondaryTable[0];
    } else {
        sts = new SecondaryTable[] { stAnnotation };
    }
    return sts;
}
Also used : SecondaryTables(javax.persistence.SecondaryTables) SecondaryTable(javax.persistence.SecondaryTable)

Example 3 with SecondaryTables

use of javax.persistence.SecondaryTables in project hibernate-orm by hibernate.

the class EntityBinder method findMatchingSecondaryTable.

private SecondaryTable findMatchingSecondaryTable(Join join) {
    final String nameToMatch = join.getTable().getQuotedName();
    SecondaryTable secondaryTable = annotatedClass.getAnnotation(SecondaryTable.class);
    if (secondaryTable != null && nameToMatch.equals(secondaryTable.name())) {
        return secondaryTable;
    }
    SecondaryTables secondaryTables = annotatedClass.getAnnotation(SecondaryTables.class);
    if (secondaryTables != null) {
        for (SecondaryTable secondaryTable2 : secondaryTables.value()) {
            if (secondaryTable != null && nameToMatch.equals(secondaryTable.name())) {
                return secondaryTable;
            }
        }
    }
    return null;
}
Also used : SecondaryTables(javax.persistence.SecondaryTables) SecondaryTable(javax.persistence.SecondaryTable)

Example 4 with SecondaryTables

use of javax.persistence.SecondaryTables in project hibernate-orm by hibernate.

the class JPAOverriddenAnnotationReader method getSecondaryTables.

private SecondaryTables getSecondaryTables(Element tree, XMLContext.Default defaults) {
    List<Element> elements = tree == null ? new ArrayList<>() : (List<Element>) tree.elements("secondary-table");
    List<SecondaryTable> secondaryTables = new ArrayList<>(3);
    for (Element element : elements) {
        AnnotationDescriptor annotation = new AnnotationDescriptor(SecondaryTable.class);
        copyStringAttribute(annotation, element, "name", false);
        copyStringAttribute(annotation, element, "catalog", false);
        if (StringHelper.isNotEmpty(defaults.getCatalog()) && StringHelper.isEmpty((String) annotation.valueOf("catalog"))) {
            annotation.setValue("catalog", defaults.getCatalog());
        }
        copyStringAttribute(annotation, element, "schema", false);
        if (StringHelper.isNotEmpty(defaults.getSchema()) && StringHelper.isEmpty((String) annotation.valueOf("schema"))) {
            annotation.setValue("schema", defaults.getSchema());
        }
        buildUniqueConstraints(annotation, element);
        buildIndex(annotation, element);
        annotation.setValue("pkJoinColumns", buildPrimaryKeyJoinColumns(element));
        secondaryTables.add(AnnotationFactory.create(annotation));
    }
    /*
		 * You can't have both secondary table in XML and Java,
		 * since there would be no way to "remove" a secondary table
		 */
    if (secondaryTables.size() == 0 && defaults.canUseJavaAnnotations()) {
        SecondaryTable secTableAnn = getPhysicalAnnotation(SecondaryTable.class);
        overridesDefaultInSecondaryTable(secTableAnn, defaults, secondaryTables);
        SecondaryTables secTablesAnn = getPhysicalAnnotation(SecondaryTables.class);
        if (secTablesAnn != null) {
            for (SecondaryTable table : secTablesAnn.value()) {
                overridesDefaultInSecondaryTable(table, defaults, secondaryTables);
            }
        }
    }
    if (secondaryTables.size() > 0) {
        AnnotationDescriptor descriptor = new AnnotationDescriptor(SecondaryTables.class);
        descriptor.setValue("value", secondaryTables.toArray(new SecondaryTable[secondaryTables.size()]));
        return AnnotationFactory.create(descriptor);
    } else {
        return null;
    }
}
Also used : AnnotationDescriptor(org.hibernate.annotations.common.annotationfactory.AnnotationDescriptor) SecondaryTables(javax.persistence.SecondaryTables) AnnotatedElement(java.lang.reflect.AnnotatedElement) Element(org.dom4j.Element) ArrayList(java.util.ArrayList) SecondaryTable(javax.persistence.SecondaryTable)

Example 5 with SecondaryTables

use of javax.persistence.SecondaryTables in project cloudstack by apache.

the class DbUtil method getSecondaryTables.

public static final SecondaryTable[] getSecondaryTables(AnnotatedElement clazz) {
    SecondaryTable[] sts = null;
    SecondaryTable stAnnotation = clazz.getAnnotation(SecondaryTable.class);
    if (stAnnotation == null) {
        SecondaryTables stsAnnotation = clazz.getAnnotation(SecondaryTables.class);
        sts = stsAnnotation != null ? stsAnnotation.value() : new SecondaryTable[0];
    } else {
        sts = new SecondaryTable[] { stAnnotation };
    }
    return sts;
}
Also used : SecondaryTables(javax.persistence.SecondaryTables) SecondaryTable(javax.persistence.SecondaryTable)

Aggregations

SecondaryTable (javax.persistence.SecondaryTable)5 SecondaryTables (javax.persistence.SecondaryTables)5 AnnotatedElement (java.lang.reflect.AnnotatedElement)1 ArrayList (java.util.ArrayList)1 Element (org.dom4j.Element)1 AnnotationDescriptor (org.hibernate.annotations.common.annotationfactory.AnnotationDescriptor)1