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
>
>
>

Reply via email to