use of com.querydsl.sql.Column in project querydsl by querydsl.
the class AnnotationMapper method createMap.
@Override
public Map<Path<?>, Object> createMap(RelationalPath<?> path, Object object) {
try {
Map<String, Path<?>> columnToPath = new HashMap<String, Path<?>>();
for (Path<?> column : path.getColumns()) {
columnToPath.put(ColumnMetadata.getName(column), column);
}
Map<Path<?>, Object> values = new HashMap<Path<?>, Object>();
for (Field field : ReflectionUtils.getFields(object.getClass())) {
Column ann = field.getAnnotation(Column.class);
if (ann != null) {
field.setAccessible(true);
Object propertyValue = field.get(object);
if (propertyValue != null) {
if (columnToPath.containsKey(ann.value())) {
values.put(columnToPath.get(ann.value()), propertyValue);
}
} else if (withNullBindings) {
values.put(columnToPath.get(ann.value()), Null.DEFAULT);
}
}
}
return values;
} catch (IllegalAccessException e) {
throw new QueryException(e);
}
}
Aggregations