openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kevin Sutter (JIRA)" <>
Subject [jira] [Created] (OPENJPA-2176) QuerySQLCache not processing prepared sql correctly
Date Tue, 24 Apr 2012 13:55:33 GMT
Kevin Sutter created OPENJPA-2176:

             Summary: QuerySQLCache not processing prepared sql correctly
                 Key: OPENJPA-2176
             Project: OpenJPA
          Issue Type: Bug
          Components: query
    Affects Versions: 2.0.3, 2.1.2, 2.3.0, 2.2.1
            Reporter: Kevin Sutter

Opening this JIRA on behalf of a user e-mailing me with this question...  The workaround for
this problem is to disable the QuerySQLCache either via a property in the persistence.xml
or on an individual query basis via the setQueryHint invocation.  A description of the problem

I have a JPQL like this:
SELECT catentry FROM CatalogEntry catentry WHERE catentry.catalogEntryId IN(:catalogEntryId)

- catalogEntryId is of type long. 
- I am trying to set the named query parameter 'catalogEntryId' from my code using query.setParameter("catalogEntryId",
list of catalogEntryIds)
- I am ensuring that the list of catalogEntryIds that I am setting is always a list of type
java.lang.Long. I am using wrappers/objects rather than primitives. But I think that should
be OK, as the same is mentioned in the OpenJPA manual.

The issue is:
- When I start my server (on WAS), it works fine for the very first time. So let's say I pass
10459 & 10460 as catalogEntryIds, I get the entities corresponding to both the ids.
- But for subsequent requests, only one entity is returned mostly for the last id(10460) in
the list. There are no errors/exceptions thrown. I have in fact started the server in debug
mode and checked the exact values set in the query object. The "boundParams" in the QueryImpl
has the list of catalogEntryIds(10459 & 10460) that I have set.
- The issue is even more strange when I try to set a list of entities using the IN() expression
in another query which takes a list of entities as the query parameter. It works for the very
first time and then for subsequent requests it throws an exception saying parameter not supported/
invalid parameter...

Another strange behavior is that all the above works absolutely fine, when I launch the similar
code in a stand alone J2SE platform, typically using a JUNIT test case.

This problem looks very basic for a J2EE environment, I am hoping this is a known issue and
you have a fix already? 
About my environment:
- I am running with of the OSGi/JPA 2.0 Feature Pack on top of WAS v7
- I have also set dataCache/queryCache to false hoping that would yield successful result,
but did not help. Seems like they are by default disabled? 

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message