Note that there are some explanatory texts on larger screens.

plurals
  1. POHibernate stored procedure call results in GenericJDBCException: Invalid column index
    primarykey
    data
    text
    <p>In an effort to learn Hibernate 4.1 with Oracle Stored Procedures, I am trying to get an example to work that is as simple as I can make it: 1. No parameters passed in 2. SYS_REFCURSOR as the one return parameter</p> <p>What I'm getting is an exception: "org.hibernate.exception.GenericJDBCException: Invalid column index". Searching online for hours for a solution to this has been less than helpful.</p> <p>============================= Procedure</p> <pre><code>CREATE OR REPLACE PROCEDURE IFC_OWNER.JPA_APPLICATION_R_TEST ( o_result_set OUT SYS_REFCURSOR ) AS BEGIN OPEN o_result_set FOR SELECT APPLICATION_ID, APP_COMMON_NM, APP_DESC, APP_URL FROM APPLICATION_R; END; / </code></pre> <p>============================= xml call</p> <pre><code>&lt;sql-query name="oracleproccall" callable="true"&gt; &lt;return alias="application_r" class="com.myco.entities.ApplicationR"/&gt; &lt;![CDATA[ call JPA_APPLICATION_R_TEST() ]]&gt; &lt;/sql-query&gt; </code></pre> <p>============================= java (Exception thrown at call to sqlQuery.getResultList())</p> <pre><code>public void run() { EntityManager entityManager = entityManagerFactory.createEntityManager(); try { Query sqlQuery = entityManager.createNamedQuery("oracleproccall"); List list = sqlQuery.getResultList(); ...snip... } catch (PersistenceException ex) { ex.printStackTrace(); } finally { entityManager.close(); } } </code></pre> <p>============================= Entity class</p> <pre><code> @Entity @Table(name = "APPLICATION_R", schema = "IFC_OWNER") public class ApplicationR implements Serializable { private int applicationId; private String appCommonNm; private String appDesc; private String appUrl; ...snip... More available if needed. </code></pre> <p>============================= Exception</p> <pre><code>## ApplicationsByStoredProc ## Hibernate: /* named native SQL query oracleproccall */ call JPA_APPLICATION_R_TEST() Feb 19, 2013 2:58:07 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions WARN: SQL Error: 17003, SQLState: 99999 Feb 19, 2013 2:58:07 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions ERROR: Invalid column index javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Invalid column index at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1377) at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1300) at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:266) at com.myco.jpa.tests.ApplicationsByStoredProc.run(ApplicationsByStoredProc.java:37) at com.dstoutput.jpa.JPAEntities_InFactDomain_Test.main(JPAEntities_InFactDomain_Test.java:56) Caused by: org.hibernate.exception.GenericJDBCException: Invalid column index at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110) at org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:129) at org.hibernate.engine.jdbc.internal.proxy.CallableStatementProxyHandler.continueInvocation(CallableStatementProxyHandler.java:49) at org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81) at $Proxy16.registerOutParameter(Unknown Source) at org.hibernate.dialect.Oracle8iDialect.registerResultSetOutParameter(Oracle8iDialect.java:507) </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload