Michael Glauche created OPENJPA-2228:
----------------------------------------
Summary: QuerySQLCache broken for Entities with @EmbeddedId
Key: OPENJPA-2228
URL: https://issues.apache.org/jira/browse/OPENJPA-2228
Project: OpenJPA
Issue Type: Bug
Components: query
Affects Versions: 2.2.0
Reporter: Michael Glauche
Multiple calls of a query which has some Relationships with @EmbeddedId fields
fails if QuerySQLCache is enabled.
q = em.createQuery("select l from ListTest l where l.te=:test");
does create:
SELECT t0.id, t0.keyA, t0.keyB, t0.keyC, t1.keyA, t1.keyB, t1.keyC, t1.data1,
t1.data2
FROM ListTest t0 LEFT OUTER JOIN TestEntity t1 ON t0.keyA = t1.keyA AND
t0.keyB
= t1.keyB AND t0.keyC = t1.keyC
WHERE (t0.keyA = ? AND t0.keyB = ? AND t0.keyC = ?)
[params=(int) 1, (int) 2, (int) 3]
however a second query will create:
q = em.createQuery("select l from ListTest l where l.te=:test");
SELECT t0.id, t0.keyA, t0.keyB, t0.keyC, t1.keyA, t1.keyB, t1.keyC, t1.data1,
t1.data2
FROM ListTest t0 LEFT OUTER JOIN TestEntity t1 ON t0.keyA = t1.keyA AND
t0.keyB
= t1.keyB AND t0.keyC = t1.keyC
WHERE (t0.keyA = ? AND t0.keyB = ? AND t0.keyC = ?)
[params=(int) 3, (int) 2, (int) 3]
Note the wrong first param !
(There is some Index filed calculated somewhere in the query and the index
Array has [0,0,0] as values, so the 0th position does get updated three times
.. the bug should be something with the index i think)
See attached test-project
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira