【问题标题】:JPA and SYS_REFCURSOR like OUT parameterJPA 和 SYS_REFCURSOR 类似 OUT 参数
【发布时间】:2012-08-14 02:47:20
【问题描述】:

我想使用带有SYS_REFCURSOR 的JPA 调用一个过程,例如OUT 参数。使用普通 JDBC 很容易,但我不确定在 JPA 中是否可行。

我的程序如下:

CREATE OR REPLACE FUNCTION FN_GET_COINS
  RETURN SYS_REFCURSOR
IS vCursor SYS_REFCURSOR;

BEGIN
  OPEN vCursor FOR
    SELECT
      ...
  RETURN vCursor;
  CLOSE vCursor;

EXCEPTION
  ...
END FN_GET_COINS;

【问题讨论】:

  • 看一下spring JDBC - StoredProcedure

标签: java plsql eclipselink sys-refcursor glassfish-4


【解决方案1】:

JPA 2.0 不支持存储过程,但在 JPA 2.1Java EE 7 的一部分)中添加了支持。使用 Oracle SYS_REF_CURSOR 的标准 JPA 2.1 代码示例:

http://wiki.eclipse.org/EclipseLink/Release/2.5/JPA21#Ref_cursor_Example
http://en.wikibooks.org/wiki/Java_Persistence/Advanced_Topics#JPA_2.1_StoredProcedureQuery


【讨论】:

    【解决方案2】:

    如果你想用标准化的 JPA 2.0 来做这件事,那么你就不走运了(除了通过“本机查询”API 破解它......它在 JPA2.1 中是标准化的。

    DataNucleus JPA 自 2012 年初以来就支持 JPA 2.1 语法(如原始答案中所述,因此不知道“当前答案已过时”应该是什么意思),如这些文档中所示 http://www.datanucleus.org/products/accessplatform_3_3/jpa/stored_procedures.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多