1

SYS_REFCURSOR同様のOUTパラメータでJPAを使用してプロシージャを呼び出したい。これはプレーン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;
4

2 に答える 2

5

JPA 2.0はストアドプロシージャをサポートしていませんが、JavaEE7の一部であるJPA2.1でサポートが追加されます。OracleSYS_REF_CURSORを使用した標準JPA2.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


于 2013-07-17T01:48:42.100 に答える
0

標準化されたJPA2.0でそれを実行したい場合は、運が悪いです(「ネイティブクエリ」APIを介してハッキングすることは別として...JPA2.1で標準化されています。

DataNucleusJPAは2012年の初めからJPA2.1構文をサポートしており(元の回答で述べられているように、「現在の回答が古くなっている」とはどういう意味かわかりません)、これらのドキュメント http://www.datanucleusに示されています。 org / products / accessplatform_3_3 / jpa /stored_procedures.html

于 2012-08-17T16:58:42.250 に答える