java - JOOQ 解析 orderBy 和 orderDirection 以与 dslcontext 一起使用

标签 java sql jooq

我从 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/

相关文章:

sql - 谷歌 BQ : Running Parameterized Queries where Parameter Variable is the BQ Table Destination

kotlin - 使用 jOOQ 为键生成类

java - 使用 SelectQuery 对象构建嵌套条件

java - 在 Oracle DB 插入中保留毫秒

java - 使用谷歌应用引擎时显示迭代错误

mysql - 将行计数存储在另一个表中的好习惯是什么?

sql - 如何将实际的where子句传递给SQL函数?

java - JOOQ - 选择查询中的选择计数

java - 哪些场景可以使用静态java方法?

java - 如何让安卓应用程序在一天中的特定时间做某事