Skip to main content

Hibernate Stored Procedure with first parameter not "OUT"


I spent some days trying to call a Stored Procedure through Hibernate. I used CreateSQLQuery  and I made my own custom transformer, but I could not get it work. I keep geeting Wrong Type and Parameter of procedure exception.

My procedure was like the following

    procedure GET_BY_EMPLOYEE (
        P_EMPLOYEE_ID   in       EMPLOYEE_ID%TYPE
      , P_DATE_FROM  in       date
      , P_DATE_TO    in       date
      , P_REF           out      CURSORREFERENCETYPE);

After days of searching, I found this

http://docs.jboss.org/hibernate/orm/4.2/devguide/en-US/html/ch13.html#sp_query

For Oracle the following rules apply:

  • A function must return a result set. The first parameter of a procedure must be an OUT that returns a result set. This is done by using a SYS_REFCURSOR type in Oracle 9 or 10. In Oracle you need to define aREF CURSOR type. See Oracle literature for further information.

So there is no way to get this procedure to work in hibernate. I will use a plain JDBCTemplate. 

Comments

Popular posts from this blog

Building bitcoin/litecoin on mac os x missing EC.h

For my own fun, I was playing around with bitcoin, to check how the parameters of the cryptocurrencies can be modified. After recent upgrades to my OS, I could not build any longer the bitcoind. Seems like something changed on that side. Now this command ./configure --with-gui=qt5 --enable-debug Was sistematically producing  configure: error: OpenSSL ec header missing EC is the file for elliptic curve cryptography. I had brew correctly configured, and the header files were all correctly present. After some time spent inspecting the issue, on github I was able to find the solution for this problem. I simply add to export the following export LDFLAGS=-L/usr/local/opt/openssl/lib export CPPFLAGS=-I/usr/local/opt/openssl/include There is aksi pull request on bitcoin for that, I hope I could save you some time https://github.com/bitcoin/bitcoin/pull/6885/files?diff=split&unchanged=expanded

When adding a property to graph-tool don't forget this

When you are adding a new property to a graph-tool graph (https://graph-tool.skewed.de/) is_node_customer = network.new_vertex_property("bool") weight = network.new_edge_property("float")  you should never forget to add this network.vertex_properties["is_node_customer"] = is_node_customer network.edge_properties["weight"] = weight Otherwise the properties will not saved or stored together with the graph and you will lose a lot of time

SECJ0118E with form authentication and spnego enabled

Our deployment keeps getting an odd SECJ0118E  exception when authenticating with Form authentication with Mozilla or Chrome browser not configured for Active Directory Domain. All instructions into WebSphere infocenter for enabling fallback to default authentication were correctly applied.  We noticed that standard WebSphere security tracing ( *=info:com.ibm.ws.security.*=all:com.ibm.websphere.security.*=all:com.ibm.websphere.wim.*=all:com.ibm.wsspi.wim.*=all:com.ibm.ws.wim.*=all)  provided into trace a lot of Kerberos exceptions.  [30/12/13 17.36.57:246 CET] 0000005e Krb5LoginModu < login() Exit javax.security.auth.login.FailedLoginException: Errore di login: com.ibm.security.krb5.KrbException, codice di stato: 68 messaggio: Nessuno at com.ibm.security.jgss.i18n.I18NException.throwFailedLoginException(I18NException.java:30) at com.ibm.security.auth.module.Krb5LoginModule.a(Krb5LoginModule.java:719) at com.ibm.security.auth.module.Krb5LoginModule.b(Krb5LoginMod