You must be an Oracle user... :-) CallableStatements can return ResultSets just like any PreparedStatement can. The difference is that CallableStatements can also have results of their own, which is the more traditional "output parameter" from the JDBC API perspective. It is these results that are not currently cached by iBATIS.
http://java.sun.com/j2se/1.4.2/docs/api/java/sql/CallableStatement.html In practice the difference is: ResultSet rs = cs.executeQuery(...); // would be cached. vs. cs.getObject(...); // would NOT be cached, even if it's a ResultSet mapped to a ref cursor returned from an Oracle proc. Cheers, Clinton On Tue, Apr 22, 2008 at 3:47 PM, Jason Bennett <[EMAIL PROTECTED]> wrote: > Thanks for the response, Clint. > > > > I'm a little confused about the difference between regular results and OUT > results. I assume the return result of a stored function is always an OUT > parameter. > > > > My current fix is to use LRUMap from commons-collections, but what I'd > really like is manual access to the iBatis cache, so that I can use the > flush interval and other features. Could a fix for this be to expose the > cache through the sqlmap interface? > > > > jason > > > ------------------------------ > > *From:* Clinton Begin [mailto:[EMAIL PROTECTED] > *Sent:* Tuesday, April 22, 2008 2:10 PM > *To:* user-java@ibatis.apache.org > *Subject:* Re: iBatis-362 - Caching broken for stored procs > > > > The bug is actually invalid. The reason it "worked" in 2.1.5 is that > procs weren't cached at all. In 2.2.0+ proc statements were cached, but > there's no way to cache output parameters, as you're passing the object in > (so we can't cache it). We could build something in to mock the parameter > object and hold the out params, but that's nontrivial. So for now, no, > there is no way to cache output parameters. You can cache regular results > from a proc of course, just not the OUT params... > > Clinton > > On Thu, Apr 17, 2008 at 1:32 PM, Jason Bennett <[EMAIL PROTECTED]> > wrote: > > I ran across this bug today, and was surprised that there hasn't been any > discussion. As far as I can tell, iBatis caching does not work for stored > procedure return values – you always get a null (or empty) value out of > the cache. > > Has anyone else experienced this (or not), and found a workaround? > > jason > > >