Ausführen der Gespeicherten Prozedur in JPA 2.0
Ich habe Folgendes problem und ich weiß nicht, wie es zu lösen.
Ich habe eine gespeicherte Prozedur mit einem parameter ( einem Datum im format: yyyy-MM-dd ) auf meinem MSSQL Server 2008.
Dann habe ich eine @Entity-Klasse mit einer @NamedNativeQuery:
@NamedNativeQuery(name = "my_stored_proc",query = "? = exec EMIR_GUI.get_OTCLite_ACKNACK_Report ?", resultClass = EmirFacade.class)
@Entity
public class EmirFacade {
@Column(name="MessageType", nullable=false)
@Basic(fetch = FetchType.EAGER)
private String mesageType;
Meine Bean-Klasse sieht wie folgt aus:
@PersistenceContext(unitName=Globals.__TWHUNITNAME)
private EntityManager em;
public List<EmirFacade> get_EmirReport(Date date) {
try {
@SuppressWarnings("unchecked")
Query q = em.createNamedQuery("my_stored_proc").setParameter(1, date);
List<EmirFacade> emir_report = q.getResultList();
//List emir_report = q.getResultList();
return emir_report;
} catch (Exception e) {
return Collections.emptyList();
}
}
Nun, ich bekomme immer wieder folgende Fehlermeldung ( es ist in Deutsch, so dass ich haben, um es zu übersetzen, so gut ich kann )
Index "0" ist außerhalb des Bereichs.
Ich habe versucht, fast alles, aber ich finde keine Möglichkeit mein problem zu lösen.
Vielleicht hat jemand einen guten Vorschlag für mich?
Vielen Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
JPA 2.0 hat keine explizite Unterstützung für gespeicherte Prozeduren (JPA 2.1 hat).
Eine Problemumgehung ist die Verwendung von nativen Abfragen (wie
{CALL APURARCAMPANHASBRINDES.PROC_APURARCAMPANHA(?1, ?2, ?3, ?4, ?5, ?6, ?7)}
), aber das funktioniert nicht, wenn das Verfahren hat out-Parameter.Hier ist eine Beispiel-Implementierung, die verwendet Hibernate Arbeiten-Schnittstelle:
Wenn Sie wechseln können, JPA 2.1 (und ich empfehle Ihnen tun), können Sie einfach tun:
sonst ist es ein bisschen mehr kompliziert, Folgen Sie einfach dieses tutorial.