users@jpa-spec.java.net

[jpa-spec users] [jsr338-experts] Re: StoredProcedure clarification

From: Steve Ebersole <steve.ebersole_at_redhat.com>
Date: Fri, 26 Jul 2013 17:26:42 -0500

Related:

EntityManager em = ...;
StoredProcedureQuery query = em.createStoredProcedureQuery(...);
query.getUpdateCount();
query.getUpdateCount();
query.getUpdateCount();
...

Even say it "does the right thing":
StoredProcedureQuery query = em.createStoredProcedureQuery(...);
query.execute();
query.getUpdateCount();
query.getUpdateCount();
query.getUpdateCount();

Javadoc for getUpdateCount says "Return the update count or -1 if there
is no pending result or if the next result is not an update count."

The part that bothers me is the "next result" bit. To me that
indicates that we are supposed to "move on" to the next result. But
say the next logical result is a ResultSet. I guess I am not seeing
the consistent way to cycle through the ResultSets/updateCounts if the
TCK tests are how this is supposed to work. All these situations are
exactly things done in the TCK.


On Fri 26 Jul 2013 05:16:44 PM CDT, Steve Ebersole wrote:
> EntityManager em = ...;
> StoredProcedureQuery query = em.createStoredProcedureQuery(...);
> query.getUpdateCount();
>
> What should happen above when getUpdateCount() is called? The
> "result" corollaries (getResultList, getSingleResult) specifically say
> that the query will be executed when they are called. getUpdateCount
> conspicuously says nothing on the subject. Nor does it call out being
> allowed to throw an exception in this case. So should I assume that
> getUpdateCount() should just return -1 here?
>
> Yes, its a silly case, but the TCK does it. Many times...
>
>