JPA und SYS_REFCURSOR wie OUT-parameter
Will ich eine Prozedur aufrufen mithilfe von JPA mit SYS_REFCURSOR
wie OUT
parameter. Dies ist sehr einfach mit plain-JDBC-aber ich bin mir nicht sicher, ob das möglich ist in JPA.
Meine Vorgehensweise ist wie folgt:
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;
- werfen Sie einen Blick auf spring JDBC - StoredProcedure
Du musst angemeldet sein, um einen Kommentar abzugeben.
JPA 2.0 hat keine Unterstützung für gespeicherte Prozeduren, aber auch Unterstützung in JPA 2.1, Teil Java EE 7. Beispiele für standard-JPA-2.1-code mit Oracle SYS_REF_CURSOR:
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
EclipseLink 2.5 unterstützt JPA 2.1 (es ist die Referenz-Implementierung):
http://www.eclipse.org/eclipselink/releases/2.5.php
https://glassfish.java.net/
Hibernate 4.3.11 unterstützt JPA 2.1:
http://www.hibernate.org/downloads
Ruhezustand bis zu 4.2 unterstützt gespeicherte Prozeduren, die über native API & config (non-PPV) :
http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querysql.html#sp_query
(Hier muss der CURSOR entweder zurückgegeben, die über eine "stored function", oder muss der erste parameter (out), der eine gespeicherte Prozedur).
Darüber hinaus Polpan Antwort hier zeigen, wie dies getan werden kann, mit einem JPA 2.0 native query mit einer QueryHint, Einstellung Ruhezustand proprietäre hint Eigenschaft
org.hibernate.callable
zu wahren.Wenn Sie wollen, es zu tun mit standardisierten JPA 2.0 ist, dann sind Sie kein Glück (abgesehen von hacking durch das "native query" API ... es ist standardisiert in JPA2.1.
DataNucleus JPA unterstützt die JPA 2.1 syntax seit Anfang 2012 (wie gesagt in der original-Antwort, also keine Ahnung was die "aktuelle Antwort ist out-of-date" ist gemeint), gezeigt in diesen docs
http://www.datanucleus.org/products/accessplatform_3_3/jpa/stored_procedures.html