java - 如何从 MyBatis 传递 CURSOR 作为 Oracle 函数参数

标签 java mybatis

我们使用 MyBatis 进行 ORM。我需要调用一个以游标作为参数的 Oracle 函数。如果 MyBatis 能够将 Java 对象映射到光标,那就太理想了,但我怀疑这是否可能。

有什么想法可以做到这一点吗?

请注意,我知道如何将从函数返回的游标映射到 Java 对象。反过来就是问题所在。

最佳答案

似乎唯一的解决方案是创建一个 block ,声明一个游标并将其手动传递给函数:

<select id="..." parameterType="..." statementType="CALLABLE">
    declare
          my_cursor SYS_REFCURSOR;
    begin
          OPEN my_cursor FOR
                    <foreach item="item" collection="..." separator=" union all ">
                    SELECT #{item.key} as key, ... FROM dual
                    </foreach> ;

        #{result,jdbcType=CURSOR,mode=OUT,resultMap=...,javaType=java.sql.ResultSet} := our_function(my_cursor => my_cursor);
    end;
</select>

关于java - 如何从 MyBatis 传递 CURSOR 作为 Oracle 函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55393759/

相关文章:

java - 在 myBatis 中输入 selectList

java - 使用重写方法之外的值会导致 null

java - Maven(m2e): access dependecy jar file programmatically

java - MyBatis - 映射树数据结构

java - 我的巴蒂斯。结果映射和属性

spring - mybatis spring mvc 应用,得到 Invalid bound statement (not found)

Java:Vector add 函数很浅?

java - 从文件或图库中查找并拍摄最后一张照片。 Android Studio(Java)

java - OpenExchangeRates.org 的任何 java 示例

java - mybatis。 java.lang.UnsupportedOperationException异常