我从 Controller 获取 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?
最佳答案
我自己找到了它 - JOOQ 初学者,所以也许它会对某人有所帮助。
SortField<?> sortField = DSL.field(orderBy).sort(SortOrder.valueOf(orderDirection));
关于java - JOOQ 解析 orderBy 和 orderDirection 以与 dslcontext 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51727902/