我正在从控制器中获取orderBy和orderDirection,并希望对其进行解析并将其与我使用DSLContext进行查询的存储库一起使用。
这是我的方法:
public List<Map<String, Object>> read(@NonNull final String schema,
@NonNull final String tableName,
@NonNull final List<String> columnNames,
@NonNull final String queryConditions,
@NonNull final String orderBy,
@NonNull final String orderDirection) {
final Table table = table(getTableWithSchema(schema, tableName));
final List<Condition> conditions = conditionMapper.mapToConditions(queryConditions);
final List<Field<?>> fields = fieldsMapper.mapToFields(columnNames);
final SortField sortField = ???
return crudRepository.read(table, fields, conditions, sortField);
}
稍后在我的文章中将其称为:
public List<Map<String, Object>> read(@NonNull final Table<?> table,
@NonNull final Collection<Field<?>> fields,
@NonNull final Collection<Condition> conditions,
@NonNull final SortField<?> sortField) {
return dslContext
.select(fields)
.from(table)
.where(conditions)
.orderBy(sortField)
.fetchMaps();
}
我将如何创建该sortField(仅一个),以便将其传递给dslContext?
答案 0 :(得分:1)
我自己找到了-JOOQ初学者在这里,所以也许它将帮助某人。
SortField<?> sortField = DSL.field(orderBy).sort(SortOrder.valueOf(orderDirection));