queryForList only works for things that return result sets. Oracle ref cursors are a "sort of" result set, but the ref cursor is a *parameter* to a callable statement, rather than being *returned from* the stored proc. This is an important difference.
Because of this, iBATIS (and JDBC) sees them as parameters - just a wierd type of parameter. This is why the queryForXXX methods don't play well with ref cursors - so yes, the update method is the best method to use here. Jeff Butler On Mon, Mar 10, 2008 at 8:13 PM, Jason Bennett <[EMAIL PROTECTED]> wrote: > One problem I had in this scenario is when I pass parameters to the > function, and expect a cursor back. I had to map the returning parameter, > since I had mapped all the in parameters. This prevented me from using > queryForList() as I wanted to. Am I doing anything wrong, or does passing > parameters to the SP force me to use the update() method? > > > > jason > > > ------------------------------ > > *From:* Ryan Shelley [mailto:[EMAIL PROTECTED] > *Sent:* Monday, March 10, 2008 2:38 PM > *To:* [email protected] > *Subject:* Re: Re: Question about queryForList and Oracle ref cursors > > > > For reference: > > > http://opensource.atlassian.com/confluence/oss/display/IBATIS/How+do+I+call+a+stored+procedure > > Under: What SqlMapClient Method Should I Use? > ... > If your procedure returns a result set (not a result set in an OUT > parameter, but a result set from the procedure itself), then use * > queryForList()* or *queryForObject()*. Use queryForList() if you expect > more than one result object, or queryForObject() if you expect only one > result Object. > ... > If your procedure does not return result sets, or only returns result sets > in OUT parameters, then use the *update()* method. > > -Ryan > > On Mon, Mar 10, 2008 at 2:22 PM, Ryan Shelley <[EMAIL PROTECTED]> > wrote: > > In the one you had, you were creating an empty HashMap, executing the > queryForList method passing in the empty HashMap, and then converting the > still empty HashMap to a list and returning that to your method. > queryForList doesn't take an object parameter to store the results in, it > takes an object parameter to pass variables into your queries. The return > value of queryForList is a List of your ResultMapped Models. > > -Ryan > > > > On Mon, Mar 10, 2008 at 2:06 PM, Jesse Reimann <[EMAIL PROTECTED]> > wrote: > > Ryan that's exactly what I did that wouldn't work. It returns to me a List > that has 10 elements all which are NULL. > > > > > > > > Jesse > > > > > > >
