如何使用 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();
我知道我可以像这样在循环中向列表添加条件:
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();