Search in sources :

Example 31 with Column

use of javax.persistence.Column in project simple-web-server by likeabook.

the class SqlUtils method getWhere.

public static String getWhere(Object entityCondition, Query query) {
    StringBuffer resultBuffer = new StringBuffer(" where 1=1 ");
    if (entityCondition != null) {
        String where = "";
        List<Field> fieldList = EntityUtils.getTableFieldList(entityCondition.getClass());
        for (Field field : fieldList) {
            Object value = EntityUtils.getValue(entityCondition, field);
            field.setAccessible(true);
            Column columnAnnotation = field.getAnnotation(Column.class);
            String columnName;
            if (columnAnnotation != null && StringUtils.isNotEmpty(columnAnnotation.name())) {
                columnName = columnAnnotation.name();
            } else {
                columnName = field.getName();
            }
            if (value != null) {
                where += " and t." + columnName + " = #{" + ParamUtils.ENTITY_CONDITION + "." + field.getName() + "}";
            }
        }
        resultBuffer.append(where);
    }
    if (query != null) {
        // query.whereList
        if (CollectionUtils.isNotEmpty(query.whereList)) {
            String where = StringUtils.join(query.whereList.toArray(), ") and (");
            resultBuffer.append(" and (").append(where).append(")");
        }
        // query.inCondition
        query.inList.forEach(inCondition -> {
            if (CollectionUtils.isEmpty(inCondition.param)) {
                resultBuffer.append(" and (1=0) ");
            } else {
                // #{_inCondition_.t__userId[0]}, #{_inCondition_.t__userId[1]}
                String column = inCondition.column.replaceAll("\\.", "__");
                List<String> inParamList = new ArrayList<>();
                for (int i = 0; i < inCondition.param.size(); i++) {
                    inParamList.add("#{" + ParamUtils.IN_CONDITION + "." + column + "[" + i + "]}");
                }
                String inSql = " and " + inCondition.column + " in (" + StringUtils.join(inParamList.toArray(), ", ") + ") ";
                resultBuffer.append(inSql);
            }
        });
        // query.notInCondition
        query.notInList.forEach(notInCondition -> {
            if (CollectionUtils.isNotEmpty(notInCondition.param)) {
                // #{_notInCondition_.t__userId[0]}, #{_notInCondition_.t__userId[1]}
                String column = notInCondition.column.replaceAll("\\.", "__");
                List<String> notInParamList = new ArrayList<>();
                for (int i = 0; i < notInCondition.param.size(); i++) {
                    notInParamList.add("#{" + ParamUtils.NOT_IN_CONDITION + "." + column + "[" + i + "]}");
                }
                String inSql = " and " + notInCondition.column + " not in (" + StringUtils.join(notInParamList.toArray(), ", ") + ") ";
                resultBuffer.append(inSql);
            }
        });
    }
    return resultBuffer.toString();
}
Also used : Field(java.lang.reflect.Field) Column(javax.persistence.Column) ArrayList(java.util.ArrayList)

Example 32 with Column

use of javax.persistence.Column in project simple-web-server by likeabook.

the class SqlUtils method getSelectColumnSet.

private static LinkedHashSet<String> getSelectColumnSet(Class<?> entityClass, final String aliasName) {
    LinkedHashSet<String> columnSet = new LinkedHashSet<>();
    List<Field> fieldList = EntityUtils.getTableFieldList(entityClass);
    fieldList.forEach(field -> {
        field.setAccessible(true);
        Column columnAnnotation = field.getAnnotation(Column.class);
        if (columnAnnotation != null && StringUtils.isNotEmpty(columnAnnotation.name())) {
            String annotationName = aliasName + "." + columnAnnotation.name();
            columnSet.add(annotationName);
            columnSet.add(annotationName + " as " + field.getName());
        } else {
            columnSet.add(aliasName + "." + field.getName());
        }
    });
    return columnSet;
}
Also used : LinkedHashSet(java.util.LinkedHashSet) Field(java.lang.reflect.Field) Column(javax.persistence.Column)

Example 33 with Column

use of javax.persistence.Column in project activityinfo by bedatadriven.

the class JpaBatchBuilder method columnName.

private String columnName(SingularAttribute<?, ?> attribute) {
    AccessibleObject member = (AccessibleObject) attribute.getJavaMember();
    String columnName = attribute.getName();
    Column column = member.getAnnotation(Column.class);
    if (column != null) {
        if (!column.name().isEmpty()) {
            columnName = column.name();
        }
    }
    JoinColumn joinColumn = member.getAnnotation(JoinColumn.class);
    if (joinColumn != null && joinColumn.name() != null) {
        columnName = joinColumn.name();
    }
    return columnName;
}
Also used : JoinColumn(javax.persistence.JoinColumn) JoinColumn(javax.persistence.JoinColumn) Column(javax.persistence.Column) AccessibleObject(java.lang.reflect.AccessibleObject)

Example 34 with Column

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

the class JPAOverriddenAnnotationReader method buildColumns.

private Columns buildColumns(Element element) {
    List<Element> subelements = element.elements("column");
    List<Column> columns = new ArrayList<>(subelements.size());
    for (Element subelement : subelements) {
        columns.add(getColumn(subelement, false, element));
    }
    if (columns.size() > 0) {
        AnnotationDescriptor columnsDescr = new AnnotationDescriptor(Columns.class);
        columnsDescr.setValue("columns", columns.toArray(new Column[columns.size()]));
        return AnnotationFactory.create(columnsDescr);
    } else {
        return null;
    }
}
Also used : AnnotationDescriptor(org.hibernate.annotations.common.annotationfactory.AnnotationDescriptor) MapKeyColumn(javax.persistence.MapKeyColumn) OrderColumn(javax.persistence.OrderColumn) PrimaryKeyJoinColumn(javax.persistence.PrimaryKeyJoinColumn) MapKeyJoinColumn(javax.persistence.MapKeyJoinColumn) Column(javax.persistence.Column) DiscriminatorColumn(javax.persistence.DiscriminatorColumn) JoinColumn(javax.persistence.JoinColumn) AnnotatedElement(java.lang.reflect.AnnotatedElement) Element(org.dom4j.Element) ArrayList(java.util.ArrayList)

Example 35 with Column

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

the class JPAOverriddenAnnotationReader method getColumn.

private Column getColumn(Element element, boolean isMandatory, Element current) {
    // Element subelement = element != null ? element.element( "column" ) : null;
    if (element != null) {
        AnnotationDescriptor column = new AnnotationDescriptor(Column.class);
        copyStringAttribute(column, element, "name", false);
        copyBooleanAttribute(column, element, "unique");
        copyBooleanAttribute(column, element, "nullable");
        copyBooleanAttribute(column, element, "insertable");
        copyBooleanAttribute(column, element, "updatable");
        copyStringAttribute(column, element, "column-definition", false);
        copyStringAttribute(column, element, "table", false);
        copyIntegerAttribute(column, element, "length");
        copyIntegerAttribute(column, element, "precision");
        copyIntegerAttribute(column, element, "scale");
        return (Column) AnnotationFactory.create(column);
    } else {
        if (isMandatory) {
            throw new AnnotationException(current.getPath() + ".column is mandatory. " + SCHEMA_VALIDATION);
        }
        return null;
    }
}
Also used : AnnotationDescriptor(org.hibernate.annotations.common.annotationfactory.AnnotationDescriptor) MapKeyColumn(javax.persistence.MapKeyColumn) OrderColumn(javax.persistence.OrderColumn) PrimaryKeyJoinColumn(javax.persistence.PrimaryKeyJoinColumn) MapKeyJoinColumn(javax.persistence.MapKeyJoinColumn) Column(javax.persistence.Column) DiscriminatorColumn(javax.persistence.DiscriminatorColumn) JoinColumn(javax.persistence.JoinColumn) AnnotationException(org.hibernate.AnnotationException)

Aggregations

Column (javax.persistence.Column)45 Field (java.lang.reflect.Field)15 JoinColumn (javax.persistence.JoinColumn)15 Id (javax.persistence.Id)11 ArrayList (java.util.ArrayList)9 Method (java.lang.reflect.Method)8 HashMap (java.util.HashMap)8 MapKeyColumn (javax.persistence.MapKeyColumn)7 MapKeyJoinColumn (javax.persistence.MapKeyJoinColumn)7 OrderColumn (javax.persistence.OrderColumn)7 Annotation (java.lang.annotation.Annotation)6 ManyToOne (javax.persistence.ManyToOne)6 Date (java.util.Date)4 Map (java.util.Map)4 DiscriminatorColumn (javax.persistence.DiscriminatorColumn)4 ElementCollection (javax.persistence.ElementCollection)4 Enumerated (javax.persistence.Enumerated)4 GeneratedValue (javax.persistence.GeneratedValue)4 PrimaryKeyJoinColumn (javax.persistence.PrimaryKeyJoinColumn)4 XProperty (org.hibernate.annotations.common.reflection.XProperty)4