[ 
https://issues.apache.org/jira/browse/OPENJPA-2228?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Helen Xu updated OPENJPA-2228:
------------------------------

    Attachment: OPENJPA-2228.patch

I was able to reproduce the problem. 

user parameter index got messed up when there are duplicate param key.

the fix and unit test attached.
                
> 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
>            Assignee: Helen Xu
>         Attachments: OPENJPA-2228.patch, openjpaBugreport.zip
>
>
> 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

        

Reply via email to