You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Mark Struberg (JIRA)" <ji...@apache.org> on 2010/10/20 12:29:28 UTC
[jira] Created: (OPENJPA-1845) the prepared query cache doesn't
currently work correclty with 'SELECT IN' statements
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.