我有一个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编写查询,但我想看看是否有更好的方法来做到这一点。
答案 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();