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();
}
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;
}
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;
}
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;
}
}
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;
}
}
Aggregations