2017-07-10 71 views
0

joinSteps的名單,我知道我可以像這樣的循環中添加條件到列表:如何創建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); 

回答

0

你必須知道,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(); 
+0

這就是它!現在我明白了,這個解決方案是有效謝謝! –