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

The "Code-Rich" Organization: How Automatic Code Generation Will Revolutionize Everything

  I put on paper a couple of thoughts about AI and Large Language Models (LLM) for automatic code generation in the development process. My thesis is that the current organizations are mostly “code-thin”, where only the basic Business Processes are modeled through software, while in the future we will have “code-rich" organizations boosted through the abundant and cheap AI and LLM Generated software code. These “code-rich” organizations, where every possible business process is software based - will outperform the usual "code-thin" organizations, where software is “hand-made” and expensive. Feedback would be very, very appreciated. https://www.linkedin.com/pulse/code-rich-organization-how-automatic-code-generation-de-collibus

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