Path: csiph.com!x330-a1.tempe.blueboxinc.net!feeder1.hal-mli.net!news.glorb.com!news-out.readnews.com!news-xxxfer.readnews.com!news-out.news.tds.net!newsreading01.news.tds.net!86597e80!not-for-mail From: "Stanimir Stamenkov" Subject: JPA Calling an Oracle fun Message-ID: X-Comment-To: comp.lang.java.databases, Newsgroups: comp.lang.java.databases Content-Type: text/plain; charset=IBM437 Content-Transfer-Encoding: 8bit X-Gateway: time.synchro.net [Synchronet 3.15a-Win32 NewsLink 1.92] Lines: 48 Date: Wed, 27 Apr 2011 15:22:13 GMT NNTP-Posting-Host: 96.60.20.240 X-Complaints-To: news@tds.net X-Trace: newsreading01.news.tds.net 1303917733 96.60.20.240 (Wed, 27 Apr 2011 10:22:13 CDT) NNTP-Posting-Date: Wed, 27 Apr 2011 10:22:13 CDT Organization: TDS.net Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.databases:179 To: comp.lang.java.databases, [Followup-To: comp.lang.java.databases] I'm relatively new to JPA (Java Persistence API). I'm given an Oracle function I need to execute through an EntityManager. The function has an OUT parameter (the first one) declared in addition to returning a value. I'm trying the following code: EntityManager em; ... Query query = em.createNativeQuery("{ ? = " + "call MY_FUNCTION(?,?,?,?,?,?,?) }"); query.setParameter(1, null); // XXX: registerOutParameter ? query.setParameter(2, ...); ... query.setParameter(7, ...); List result = query.getResultList(); I don't know how I can register (and later get) the first parameter as OUT parameter, pretty much like one could do with JDBC (java.sql.CallableStatement), and I'm getting an exception as: java.sql.SQLException: Missing IN or OUT parameter at index:: 9 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145) at oracle.jdbc.driver.OraclePreparedStatement.processCompletedBindRow(OraclePreparedStatement.java:1680) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3279) at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3328) at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:236) at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186) at org.hibernate.loader.Loader.getResultSet(Loader.java:1787) at org.hibernate.loader.Loader.doQuery(Loader.java:674) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236) at org.hibernate.loader.Loader.doList(Loader.java:2220) How could I workout the given case? FWIW, I'm working with JBoss 4.2.2.GA and Seam 2.0.2.SP1. -- Stanimir --- * Synchronet * The Whitehouse BBS --- whitehouse.hulds.com --- check it out free usenet! --- Synchronet 3.15a-Win32 NewsLink 1.92 Time Warp of the Future BBS - telnet://time.synchro.net:24