OpenJPA
  1. OpenJPA
  2. OPENJPA-2228

QuerySQLCache broken for Entities with @EmbeddedId

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.2.0, 2.3.0
    • Fix Version/s: 2.3.0
    • Component/s: query
    • Labels:
      None
    • Patch Info:
      Patch Available

      Description

      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

      1. OPENJPA-2228.patch
        15 kB
        Helen Xu
      2. openjpaBugreport.zip
        6 kB
        Michael Glauche

        Activity

          People

          • Assignee:
            Helen Xu
            Reporter:
            Michael Glauche
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development