【问题标题】:How to create a list of joinSteps with jooq如何使用 jooq 创建 joinSteps 列表
【发布时间】:2017-12-13 21:58:00
【问题描述】:

我知道我可以在这样的循环中向列表中添加条件:

List<Condition> conditionsList = new ArrayList<>();
for(int i= 0; i<count; i++){
    if(x)
      conditionsList.add(mySQLCondition)
}
SelectJoinStep myQuery = dsl.select(…);
conditionQuery = myQuery(conditionsList);

有没有类似创建对象列表的方法,所以我可以添加

List<Condition> joinList = new ArrayList<>();
for(int i= 0; i<count; i++){
    if(y){
        //In wich Objecttype can I store: join(myJoinTable).on(y.eq(…))??
        joinList.add(join(myJoinTable).on(y.eq(…)))
    }

}
SelectJoinStep myQueryWithJoins = dsl.select(…).join(joinList);

【问题讨论】:

    标签: java spring-boot jooq


    【解决方案1】:

    你要知道SelectJoinStep和类似的API只是为了方便调用Table.join(...).on(...)。换句话说,您可以维护一个本地 Table&lt;?&gt; 变量并将其他表连接到它,如下所示:

    Table<?> table = firstTable();
    for (int i = 0; i < count; i++) {
        if (y) 
            table = table.join(joinTable(i)).on(joinPredicate(i));
    }
    

    然后:

    dsl.select(...).from(table).fetch();
    

    【讨论】:

    • 就是这样!现在我明白了,这个解决方案有效。谢谢!
    猜你喜欢
    • 2022-01-01
    • 2021-05-25
    • 1970-01-01
    • 1970-01-01
    • 2015-03-29
    • 2014-02-02
    • 1970-01-01
    • 2019-08-07
    • 1970-01-01
    相关资源
    最近更新 更多