如何使用 jooq 创建 joinSteps 列表

How to create a list of joinSteps with jooq

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

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);

要知道,SelectJoinStep之类的API只是调用Table.join(...).on(...)方便而已。换句话说,您可以维护一个本地 Table<?> 变量并将其他表连接到它,如下所示:

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();