1

我正在研究 Oracle 存储过程,我有过程和 1 个参数

in - > x IN VARCHAR2, out -> REF_CURSOR in out SYS_REFCURSOR. 

我正在尝试使用休眠调用此过程,但我有异常

我需要相同但 H2 数据库内存

但是出现了这个错误:

[org.hibernate.dialect.H2Dialect] not known to support REF_CURSOR parameters

这是我创建过程的代码:

DROP ALIAS IF EXISTS LOGPROCESSOR;
CREATE ALIAS LOGPROCESSOR AS $$
@CODE
java.sql.ResultSet getTableContent(java.sql.Connection con, final String cv_1) throws Exception {
    String resultValue=null;
    java.sql.ResultSet rs = con.createStatement().executeQuery(
    "SELECT IDTLOG,DATE,IDSTORE,INIUPLOAD,RECEIVED,PENDING,VALIDATED FROM LOGPROCESSOR_GETSTATUSREPORT");
       /*while(rs.next())
       {
        resultValue=rs.getString(1);
       }
    return resultValue;*/
    return rs;
}
4

1 回答 1

1

不幸的是,Hibernate H2Dialect 还不支持带有 REF_CURSOR 结果集的存储过程,因此目前还不可能。

H2Dialect扩展了基本的 Dialect 类,但没有实现getCallableStatement方法

public CallableStatementSupport getCallableStatementSupport() {
    // most databases do not support returning cursors (ref_cursor)...
    return StandardCallableStatementSupport.NO_REF_CURSOR_INSTANCE;
}
于 2018-10-30T04:07:11.667 回答