我正在使用session.doReturningWork调用数据库函数,但是CallableStatement需要使用registerOutParameter 预定义返回类型,但是我需要将Object.class作为返回类型-这是因为函数调用充满活力。
所以:
Object result = session.doReturningWork(
connection -> {
try (CallableStatement function = connection
.prepareCall(
"{ ? = call " + functionName + "(?,?) }" )) {
function.registerOutParameter( 1, Types.VARCHAR );
for(int i = 1; i < values.length; i++){
log.debug("<Util.executePl> values..." + values[i]);
function.setObject( i+1, values[i] );
}
function.execute();
return function.getString( 1 );
}
} );
您可以看到输出参数是 Types.VARCHAR ,如何返回一个对象?