[英]Remove “Select * from dual” from UNION in JOOQ
这是代码:
SelectQuery<Record> resultQuery = dslContext.selectQuery();
for(int floor : floors) {
method1(resultQuery,floor);
}
接着:
method1(SelectQuery<Record> resultQuery,int floor){
SelectQuery<Record> query = dslContext.selectQuery();
/*
Now I am creating subqueries for parameter floor by adding condition
in above created query
*/
resultQuery.union(query);
}
问题是,在最终查询(resultQuery)中,我附加了“从双重选择*”。 之所以添加,是因为我将“ resultQuery”创建为空。
有什么方法可以替换或从最终查询中删除“从双选中选择*”。
谢谢
SelectQuery<Record> result = null;
for (int floor : floors) {
result = method1(result, floor);
}
带有:
SelectQuery<Record> method1(SelectQuery<Record> result, int floor) {
SelectQuery<Record> query = dslContext.selectQuery();
/* your logic ... */
if (result == null)
return query;
else
return result.union(query);
}
Optional<Select<Record>> result =
floors.stream()
.map(this::method2)
.reduce(Select::union)
带有:
Select<Record> method2(int floor) {
SelectQuery<Record> query = dslContext.selectQuery();
/* your logic ... */
return query;
}
也可以看看:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.