File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Object Relational Mapping and the fly likes calling stored procedures hibernate Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Databases » Object Relational Mapping
Bookmark "calling stored procedures hibernate" Watch "calling stored procedures hibernate" New topic

calling stored procedures hibernate

frank fro

Joined: Jan 03, 2008
Posts: 1
The procedure I'm calling returns an integer.
Without hibernate I would use code like this

stmt.registerOutParameter(10, java.sql.Types.INTEGER);
stmt.setNull(10, java.sql.Types.INTEGER);


// get the out parmater's value
int myInt = stmt.getInt(10));

What is the best way to achieve this with hibernate?
Mark Spritzler

Joined: Feb 05, 2001
Posts: 17276

I think in the beginning you meant to say in JDBC.

Anyway, with stored procedures through Hibernate, there are two rules.

1. Only one out parameter and it must be a reference cursor, so no integers.
2. The out parameter must be the first parameter.

Say you are using Oracle, you can always use session.createSQLQuery("select my_proc_call(param1, param2) from dual" and get the integer that way.


Perfect World Programming, LLC - iOS Apps
How to Ask Questions the Smart Way FAQ
MonarkSingh Yede

Joined: Aug 18, 2012
Posts: 1
Hi Mark,

I have been trolling through the web to get a reasonable solution to a problem of calling stored procedure through Hibernate which has more than one OUT parameter(In my case there are total of 3 OUT params,first out parameter is ref cursor,so it passes the hibernate expectation,but this is followed by 2 varchar) .

I am fairly new to Hibernate,so can you help me out with sample code for the option given by you??

Bill Gorder

Joined: Mar 07, 2010
Posts: 1682

MonarkSingh Yede,

This topic is over 4 years old and so it is highly unlikely that Mark is still following it. For threads this old it is usually better to post a new topic with your question and link to the old topic if it is relevant to your question.

I would start with the reference docs which are very clear with hibernates limitations in this regard.

You may have to use straight JDBC for this.

[How To Ask Questions][Read before you PM me]
Mark Rucker

Joined: Aug 17, 2012
Posts: 4
If you're also using Spring, you might want to take a look at Spring Data. One project I'm on is using it because of custom Oracle datatypes. I don't know if it can handle multiple out params.

I agree. Here's the link:
subject: calling stored procedures hibernate
It's not a secret anymore!