Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jOOQ动态带子句_Java_Sql_Postgresql_Common Table Expression_Jooq - Fatal编程技术网

Java jOOQ动态带子句

Java jOOQ动态带子句,java,sql,postgresql,common-table-expression,jooq,Java,Sql,Postgresql,Common Table Expression,Jooq,我找不到关于如何在jOOQ中动态构造子句(即公共表表达式/CTE)的文档。我的用例是: 我需要嵌套动态创建的列,以便从这些动态创建的列生成新数据 例如,我正在创建一个新字段,它是完全外部联接的非空结果。此字段仅在查询执行时可用,因此我需要将其存储在WITH子句中,以便在其他查询中引用它以进行其他计算。 理想情况下,我将能够动态请求WITH子句类型的查询,并且可以通过将此连接的数据集放置在其自己的CTE中以在下游引用中使用来排序此依赖关系。 我尝试使用以下方法,但运气不佳: 选择查询查询= 获取查

我找不到关于如何在jOOQ中动态构造子句(即公共表表达式/CTE)的文档。我的用例是:

我需要嵌套动态创建的列,以便从这些动态创建的列生成新数据 例如,我正在创建一个新字段,它是完全外部联接的非空结果。此字段仅在查询执行时可用,因此我需要将其存储在WITH子句中,以便在其他查询中引用它以进行其他计算。 理想情况下,我将能够动态请求WITH子句类型的查询,并且可以通过将此连接的数据集放置在其自己的CTE中以在下游引用中使用来排序此依赖关系。 我尝试使用以下方法,但运气不佳:

选择查询查询= 获取查询 根据上下文, 选择字段, 从句, 群田, 条件条款, 订单字段, query.getOffset, query.getLimit; //很好用 供应商结果=-> 查询 .fetchStream .mapRecord::intoMap; //在这里进行嵌套查询。现在是静态的。 //不起作用 供应商结果与= -> DSL.1 .asquery//我是否应该在此处引用SelectQuery? 选择 .FromTableNames 1 .fetchStream .mapRecord::intoMap; query.toString看起来像这样:

选择 表1.1, 合并 表1.1, 表2.id为表1.id\u表2.id, 计数*如表2.1.count所示, 将表2.field2汇总为表2.field2.sum 从表1.1到表1 完全外部连接表2.2如表2所示 在table1.id=table2.id上 其中表1.2<3000.0 分组 表1.id\u表2.id, 表1.1 按表1.1字段1 asc排序 限制100 我希望至少在其他下游查询中引用上面的合并字段。理想情况下,在jOOQ中构造WITH子句时,我可以使用的动态引用的方式或数量不会受到任何限制。最后,我希望能够动态创建这样的查询,这些查询也显示引用CTE的CTE:

-WITH子句用法更佳 具有 我的第一选择是 选择 id+100作为新字段 来自表1.1 n , 我的第二次选举 选择 newField+200作为newerField 从我的第一选择 选择 * 从我的第二次选举 ; -内联查询虽然不理想,但也是允许的 选择 * 从…起 选择 newField+200作为newerField 从…起 选择 id+100作为新字段 来自表1.1 n 作为我的首选 我的第二次选举 ; 这可能吗?还是仅限于静态表和静态选择

链接 栈溢出 jOOQ网站 github jOOQ谷歌集团
这个问题原来是我的JSON负载中的一个属性的Jackson反序列化问题,该属性被转换为我的查询。当一个属性被转换为查询类的一部分时,我得到了一个NullPointerException。关于jOOQ,这个例子很好用。此外,这是一个测试查询,通过引用结果集中的相对位置对第一个字段求和:

/*输出如下所示: +---------+ |万物之和| +---------+ | 100| +---------+ */ 供应商结果与= -> dslContext .1 .asquery .选择sumfield1,Integer.class.assum\u .FromTableNames 1 .fetchStream .mapRecord::intoMap;
该供应商可以在RESTful框架中作为响应返回,以将结果流式返回给请求者

为什么不工作?我将创建一个新分支并获取堆栈跟踪soon@LukasEder我重新安排了用于创建查询的输入负载。实际上,这个例子现在运行正常。感谢您的审阅。不过我还有一个后续问题-文档中是否有使用循环构建整个查询的示例,cte by cte?如果你想要一个关于S.O.的新问题,请让我知道。很高兴它现在起作用了。你找到原因了吗?回答你自己的问题可能很有用,以防将来有人偶然发现。。。我很乐意用一个新问题来解释这一步一步的CTE创建。