【问题标题】:Transform select statement转换选择语句
【发布时间】:2016-05-07 07:10:43
【问题描述】:

如何动态转换 SQL 查询? 我知道有一个Select.getSelect(),但是如何在选择查询中添加字段?

用例:对于 Rest-Query,我有很多分页资源,并且我有一个抽象来创建分页查询。它采用 SelectConditionStep 并添加其余部分,具体取决于其他参数。它对于简单查询非常有效,但对于包含连接的查询,需要对查询进行一点转换。 (主要是因为我不能天真地限制结果的数量,因为连接可以是一对多的关系)

【问题讨论】:

    标签: jdbc jooq


    【解决方案1】:

    最简单的方法是保留一个List<Field<?>>,在其中为select() 子句添加字段,然后仅在实际执行时创建Select 语句,而不是传递Select 对象。示例:

    List<Field<?>> fields = new ArrayList<>();
    
    // Just some examples:
    fields.addAll(getDefaultFields());
    fields.addAll(getFieldsFromUI());
    fields.addAll(getCalculatedFields());
    
    // Much later on, you finally create the statement:
    DSL.using(configuration)
       .select(fields)
       .from(...)
       .fetch();
    

    【讨论】:

      猜你喜欢
      • 2020-04-03
      • 2018-01-22
      • 2015-08-19
      • 1970-01-01
      • 2013-09-29
      • 1970-01-01
      • 2014-04-21
      • 1970-01-01
      相关资源
      最近更新 更多