Oct 21, 2011

Πώς να κάνουμε κλήση Oracle PL/SQL procedure από το EclipseLink

Πέρα από τον προγραμματισμό σε ADF και BPM, αυτόν τον καιρό συμμετέχω και σε ένα άλλο έργο που ανάμεσα στα άλλα χρειάζεται και ένα lightweight persistence των δεδομένων ενός web service. Είχα πολύ καιρό να ασχοληθώ με EJB 3, οπότε ήταν μια θαυμάσια ευκαιρία να επιλέξω αυτή την τεχνολογία, και πιο συγκεκριμένα την JPA υλοποίηση του EclipseLink, που έτσι και αλλιώς παρέχεται out of the box από τον JDeveloper. Αν και συνηθισμένος στα declarative χαρακτηριστικά του ADF, βρήκα εξίσου ενδιαφέρον και ευέλικτο το EclipseLink (http://www.eclipse.org/eclipselink/) που έτσι και αλλιώς λόγω των TopLink καταβολών του, δένει αρκετά καλά με την Oracle database. Ακολουθεί ένα παράδειγμα κλήσης μιας Oracle PL/SQL procedure που έχει ως είσοδο μια παράμετρο τύπου String.

public final static void process(EntityManager em, String message) {
JpaEntityManager jpaEntityManager = JpaHelper.getEntityManager(em);
Session session = jpaEntityManager.getActiveSession();

StoredProcedureCall call = new StoredProcedureCall();
call.setProcedureName("GENERAL_PCK.PROCESS");
call.addUnamedArgumentValue(message);
session.executeNonSelectingCall(call);
}

No comments: