openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mark Struberg (JIRA)" <>
Subject [jira] Created: (OPENJPA-1845) the prepared query cache doesn't currently work correclty with 'SELECT IN' statements
Date Wed, 20 Oct 2010 10:29:28 GMT
the prepared query cache doesn't currently work correclty with 'SELECT IN' statements

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

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.

View raw message