OpenJPA
  1. OpenJPA
  2. OPENJPA-112

Native queries and named parameters: poor error message

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.2.0
    • Component/s: None
    • Labels:
      None
    • Environment:
      windows xp, openjpa_097_incubating

      Description

      native queries fail when use named parameters

      int parm3 = 100;
      String sql = "SELECT deptno,budget,NAME,MGR_EMPID,REPORTSTO_DEPTNO FROM DeptBean WHERE deptno >= :deptno ";
      Query getDept = _em.createNativeQuery(sql,DeptBean.class
      getDept.setParameter("deptno",parm3);
      List<DeptBean> rl = (getDept.getResultList());

      <4|false|0.9.7-incubating-SNAPSHOT> org.apache.openjpa.persistence.ArgumentException: The parameter name or position "deptno" passed to execute() is not valid. All map keys must be a declared parameter name or a number matching the parameter position.
      at org.apache.openjpa.kernel.QueryImpl.toParameterArray(QueryImpl.java:897)
      at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:825)
      at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:763)
      at org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:520)
      at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:224)
      at org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:264)
      at com.ibm.ws.query.tests.JUNamedNativeQueryTest.testSelectDeptBean2(JUNamedNativeQueryTest.java:514)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:615)
      at junit.framework.TestCase.runTest(Unknown Source)
      at junit.framework.TestCase.runBare(Unknown Source)
      at junit.framework.TestResult$1.protect(Unknown Source)
      at junit.framework.TestResult.runProtected(Unknown Source)
      at junit.framework.TestResult.run(Unknown Source)
      at junit.framework.TestCase.run(Unknown Source)
      at junit.framework.TestSuite.runTest(Unknown Source)
      at junit.framework.TestSuite.run(Unknown Source)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

      1. openjpa-112.patch
        1 kB
        Craig L Russell

        Issue Links

          Activity

          Hide
          Patrick Linskey added a comment -

          While the failure is legit (see OPENJPA-111), the error message should be more clear.

          Show
          Patrick Linskey added a comment - While the failure is legit (see OPENJPA-111 ), the error message should be more clear.
          Hide
          Craig L Russell added a comment -

          Please review this patch. It's a little tricky to describe the conditions under which this user error will be encountered. By the time this error is found, the parameters have already been set and the error message must cater to lots of different situations.

          Show
          Craig L Russell added a comment - Please review this patch. It's a little tricky to describe the conditions under which this user error will be encountered. By the time this error is found, the parameters have already been set and the error message must cater to lots of different situations.
          Hide
          Pinaki Poddar added a comment -

          Committed revision 669341.

          Show
          Pinaki Poddar added a comment - Committed revision 669341.

            People

            • Assignee:
              Pinaki Poddar
              Reporter:
              Patrick Linskey
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development