OpenJPA
  1. OpenJPA
  2. OPENJPA-1828

Query with expression IN (collection_valued_input_parameter) should report syntax error, correct usange is IN collection_valued_input_parameter

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.1.0
    • Fix Version/s: 2.1.0
    • Component/s: None
    • Labels:
      None
    • Environment:
      openjpa-2.1.0-20101001.064809-70

      Description

      for (int i = 0; i < 2; i ++)

      { List categories = new LinkedList(); categories.add("01"); categories.add("02"); categories.add("03"); Query q = entityManager.createQuery("select v.id from Category v where v.id in (:p) order by v.id asc"); q.setParameter("p", categories); List results = q.getResultList(); for (Iterator it = results.iterator(); it.hasNext(); ) System.out.print(it.next() + ", "); System.out.println(); }

      The above code will produce the following output:
      01, 02, 03,
      02, 03,

      "01" is missing when the second time the same query is executed.

        Activity

        Azuo Lee created issue -
        Azuo Lee made changes -
        Field Original Value New Value
        Description for int (i = 0; i < 2; i ++) {
            List categories = new LinkedList();
            categories.add("01");
            categories.add("02");
            categories.add("03");
            Query q = entityManager.createQuery("select v.id from Category v where v.id in (:p) order by v.id asc");
            q.setParameter("p", categories);
            List results = q.getResultList();
            for (Iterator it = results.iterator(); it.hasNext(); )
                 System.out.print(it.next() + ", ");
            System.out.println();
        }

        The above code will produce the following output:
        01, 02, 03,
        02, 03,

        "01" is missing when the second time the same query is executed.
        for (int i = 0; i < 2; i ++) {
            List categories = new LinkedList();
            categories.add("01");
            categories.add("02");
            categories.add("03");
            Query q = entityManager.createQuery("select v.id from Category v where v.id in (:p) order by v.id asc");
            q.setParameter("p", categories);
            List results = q.getResultList();
            for (Iterator it = results.iterator(); it.hasNext(); )
                 System.out.print(it.next() + ", ");
            System.out.println();
        }

        The above code will produce the following output:
        01, 02, 03,
        02, 03,

        "01" is missing when the second time the same query is executed.
        Catalina Wei made changes -
        Assignee Catalina Wei [ fancy ]
        Catalina Wei made changes -
        Summary Query with expression IN (collection_valued_input_parameter) gives wrong result when executed the second time Query with expression IN (collection_valued_input_parameter) should report syntax error, correct usange is IN collection_valued_input_parameter
        Fix Version/s 2.1.0 [ 12314542 ]
        Azuo Lee made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Michael Dick made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            Catalina Wei
            Reporter:
            Azuo Lee
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development