-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 5 posts ] 
Author Message
 Post subject: Passing IN parameter to stored procedure
PostPosted: Fri Oct 07, 2005 4:36 am 
Newbie

Joined: Wed Oct 05, 2005 7:54 am
Posts: 8
Need help with Hibernate? Read this first:
http://www.hibernate.org/ForumMailingli ... AskForHelp

Hibernate version: 3.0.5

Mapping documents:
<sql-query name="p_seqnumgen">
<return alias="sequence" class="bus.Seq_Code_Gen.Sequence">

</sql-query>

Code between sessionFactory.openSession() and session.close():

Query query=q_session.getNamedQuery("p_seqnumgen");
query.setParameter("branch","BRANCH");
query.setString("seqcode","CODE");
query.setDate("seqdate",today);
List booking_ref=query.list();

Full stack trace of any exception that occurs:
Caused by: java.lang.IllegalArgumentException: Parameter branch does not exist as a named parameter in []
at org.hibernate.impl.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:380)
at org.hibernate.impl.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:448)
at db.LH_M_EBooking.EBookingHibernate.save(EBookingHibernate.java:45)
at bus.LH_M_EBooking.Bookingmanager.save(Bookingmanager.java:63)
at web.Exportbookingcontroller.save(Exportbookingcontroller.java:369)
... 34 more
2005-10-07 14:09:37,921 WARN [uk.ltd.getahead.dwr.impl.DefaultProcessor] - <Erroring: id[4152_1128674377828] message[Parameter branch does not exist as a named parameter in []]>
java.lang.IllegalArgumentException: Parameter branch does not exist as a named parameter in []
at org.hibernate.impl.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:380)
at org.hibernate.impl.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:448)
at db.LH_M_EBooking.EBookingHibernate.save(EBookingHibernate.java:45)
at bus.LH_M_EBooking.Bookingmanager.save(Bookingmanager.java:63)
at web.Exportbookingcontroller.save(Exportbookingcontroller.java:369)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at uk.ltd.getahead.dwr.impl.ExecuteQuery.execute(ExecuteQuery.java:381)
at uk.ltd.getahead.dwr.impl.DefaultProcessor.doExec(DefaultProcessor.java:539)
at uk.ltd.getahead.dwr.impl.DefaultProcessor.handle(DefaultProcessor.java:87)
at uk.ltd.getahead.dwr.DWRServlet.doPost(DWRServlet.java:174)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:534)


Name and version of the database you are using:oracle9i

The generated SQL (show_sql=true):

Debug level Hibernate log excerpt:


Hai everyone

i am a newbie to hibernate.I need to call the stored procedure named p_seqnumgen.I tried to follow the stuff in the refrence document,but i can't.Can anyone help in calling a storedprocedure with some inparameter (here 3 parameters are passed)and outparameter.But i am getting the error i posted above.

Pls help me.Have a nice day

Thanks
Aniesh U.K


Top
 Profile  
 
 Post subject: named query uses your name
PostPosted: Fri Oct 07, 2005 11:40 am 
Expert
Expert

Joined: Fri Jul 22, 2005 2:42 pm
Posts: 670
Location: Seattle, WA
http://www.hibernate.org/hib_docs/v3/re ... l#sp_query

So I guess you should use something like
<sql-query name="p_seqnumgen" callable="true">
<return alias="sequence" class="bus.Seq_Code_Gen.Sequence">
.....
</return>
{ ? = call p_seqnumgen( :branch, :seqcode, :seqdate ) }
</sql-query>

_________________
--------------
Konstantin

SourceLabs - dependable OpenSource systems


Top
 Profile  
 
 Post subject:
PostPosted: Fri Oct 07, 2005 2:41 pm 
Hibernate Team
Hibernate Team

Joined: Tue Aug 26, 2003 6:10 am
Posts: 8615
Location: Neuchatel, Switzerland (Danish)
read the docs - it explicitly states that it is only for returning stored procedures/fucntions that return resultsets. If you just want to execute a simply sp that returns a scalar use session.connection()

_________________
Max
Don't forget to rate


Top
 Profile  
 
 Post subject:
PostPosted: Sat Oct 08, 2005 12:35 am 
Newbie

Joined: Wed Oct 05, 2005 7:54 am
Posts: 8
Hai

Thanks all for u r reply.But i am getting the error
WARN [uk.ltd.getahead.dwr.impl.DefaultProcessor] - <Erroring: id[7121_1128745463703] message[Expected positional parameter count: 1, actual parameters: [] [{ ? = call p_seqnumgen( :branch, :seqcode, :seqdate ) }]]>
org.hibernate.QueryException: Expected positional parameter count: 1, actual parameters: [] [{ ? = call p_seqnumgen( :branch, :seqcode, :seqdate ) }]
at org.hibernate.impl.AbstractQueryImpl.verifyParameters(AbstractQueryImpl.java:141)
at org.hibernate.impl.SQLQueryImpl.verifyParameters(SQLQueryImpl.java:167)
at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:140)
at db.LH_M_EBooking.EBookingHibernate.save(EBookingHibernate.java:54)
at bus.LH_M_EBooking.Bookingmanager.save(Bookingmanager.java:63)
at web.Exportbookingcontroller.save(Exportbookingcontroller.java:369)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:3

Here is my mapping

<sql-query name="p_seqnumgen">
<return alias="sequence" class="bus.Seq_Code_Gen.Sequence">
<return-property name="branch" column="branch"/>
<return-property name="seqcode" column="seqcode"/>
<return-property name="seqdate" column="seqdate"/>
<return-property name="booking_refno" column="new_sequence"/>
</return>
{ ? = call p_seqnumgen( :branch, :seqcode, :seqdate ) }
</sql-query>

I really don't know what to do.Pls help me.


Thanks
Aniesh U.K


Top
 Profile  
 
 Post subject:
PostPosted: Sat Oct 08, 2005 7:37 am 
Hibernate Team
Hibernate Team

Joined: Tue Aug 26, 2003 6:10 am
Posts: 8615
Location: Neuchatel, Switzerland (Danish)
what part of my last posting did not make sense ? It is not supported, use session.connection()

_________________
Max
Don't forget to rate


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 5 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
cron
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.