在jOOQ查询常规

时间:2014-10-02 18:34:14

标签: sql postgresql jooq

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

SELECT col1, col2
FROM custom_function(param1, param2)

jOOQ codegen已生成custom_function的例程。但是,我不能在from()子句中使用该例程,因为例程返回Fieldfrom()期望Table

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

1 个答案:

答案 0 :(得分: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();