JDBI PostgreSQL:从 PSQL 调用获取函数结果

JDBI PostgreSQL: Get result of function from PSQL Call

我有一个简单的 PSQL 脚本

CREATE OR REPLACE FUNCTION foo(bar text) RETURNS text AS $$
    BEGIN
        --some stuff
        RETURN bar;
    END;
$$
LANGUAGE 'plpgsql';

我想提取

的返回语句
SELECT foo('hi') as result;

在 Java 中进入我的 JDBI 程序。

所以目前我有这个,

public String test() {
        Handle h = dbi.open();
        try {
            OutParameters ret = h.createCall("SELECT foo('hi') as result;").invoke();
            return ret.getString("result");
        } finally {
            h.close();
        }
    }

但我经常遇到

Exception 'Parameter result does not exist'

从 JDBI 获取 PSQL 函数调用结果的正确方法是什么?

http://jdbi.org/#_stored_procedure_calls

看起来 JDBC 有自己的输出参数格式

OutParameters result = handle
        .createCall("{:sum = call add(:a, :b)}") 
        .bind("a", 13) 
        .bind("b", 9) 
        .registerOutParameter("sum", Types.INTEGER)   
        .invoke();