【问题标题】:Querying from routine in jOOQ从 jOOQ 中的例程查询
【发布时间】:2014-11-27 19:45:36
【问题描述】:

我有一个 PostgreSQL 函数,它返回一组 UDT(即它的函数签名包括 RETURNS SETOF <UDT name>)。我正在尝试在 jOOQ 中运行以下查询:

SELECT col1, col2
FROM custom_function(param1, param2)

jOOQ codegen 为custom_function 生成了例程。但是,我不能在from() 子句中使用该例程,因为该例程返回一个Field,而from() 需要一个Table。

在 jOOQ 中运行上述查询的最佳方式是什么?我知道我可以用纯 SQL 编写查询,但我想看看是否有更好的方法来做到这一点。

【问题讨论】:

    标签: sql postgresql jooq


    【解决方案1】:

    尚未实现对返回 SETOF 类型的 PostgreSQL 函数的明确支持,但它已在路线图中:

    即将推出的 jOOQ 3.5.0 将支持表值函数,即返回 TABLE 类型的表:

    在支持这些功能之前,最好的选择是resort to plain SQL,例如:

    DSL.using(configuration)
       .select(DSL.field("col1"), DSL.field("col2"))
       .from("custom_function(param1, param2)")
       .fetch();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-08
      • 2014-12-21
      • 2020-06-21
      • 2022-01-22
      • 1970-01-01
      • 2014-09-23
      • 2020-06-12
      相关资源
      最近更新 更多