the prepared query cache doesn't currently work correclty with 'SELECT IN' 
statements
-------------------------------------------------------------------------------------

                 Key: OPENJPA-1845
                 URL: https://issues.apache.org/jira/browse/OPENJPA-1845
             Project: OpenJPA
          Issue Type: Bug
          Components: jdbc
    Affects Versions: 2.0.1
            Reporter: Mark Struberg
            Priority: Critical


I have a problem with upgrading from OpenJPA-2.0.0 to 2.0.1.

One of my services executes the following query (this is the 'id' I get in 
PreparedQueryCacheImpl#get(String id) ):

SELECT distinct e FROM Employment em, Person e WHERE em.employeeId = 
e.employeeId and em.orgUnitCode = :orgUnitCode AND em.employmentPosition in 
(:employmentPositions) AND em.start <= :startBefore AND em.end >= :endAfter 
ORDER BY e.familyName ASC

Somehow when I execute my service a few times with different 
employmentPositions params (ArrayList<String>) I still get the 'old' cached 
param values!

I tried to disable this behaviour in my persistence.xml with

  <property name="openjpa.QueryCache" value="false"/>

but this didn't work.

Maybe this was a side effect of the ORDER BY which made this query work in 
2.0.0 (caching of queries with ORDER BY got only fixed after 2.0.0), so I'd 
like to write a unit test for it.

As Jeremy pointed out, this can get fixed by setting <property 
name="openjpa.jdbc.QuerySQLCache" value="false"/> in my persistence.xml.
Nontheless this is a problematic bug because it is very hard to find and lead 
to finding wrong data in your application (would be less problematic if it 
would 'just' throw an Exception).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to