You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Albert Lee (JIRA)" <ji...@apache.org> on 2012/10/25 18:01:12 UTC

[jira] [Updated] (OPENJPA-2228) QuerySQLCache broken for Entities with @EmbeddedId

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

Albert Lee updated OPENJPA-2228:
--------------------------------

    Patch Info: Patch Available
    
> 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, 2.3.0
>            Reporter: Michael Glauche
>            Assignee: Helen Xu
>             Fix For: 2.3.0
>
>         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
For more information on JIRA, see: http://www.atlassian.com/software/jira