Issue Details (XML | Word | Printable)

Key: OPENJPA-111
Type: Bug Bug
Status: Resolved Resolved
Resolution: Invalid
Priority: Major Major
Assignee: Pinaki Poddar
Reporter: George Hongell
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
OpenJPA

native queries fail when use named parameters

Created: 25/Jan/07 01:25 AM   Updated: 19/Jun/08 12:40 AM
Return to search
Component/s: None
Affects Version/s: None
Fix Version/s: 0.9.7

Time Tracking:
Not Specified

Environment: windows xp, openjpa_097_incubating
Issue Links:
Cloners
 

Resolution Date: 25/Jan/07 01:31 AM


 Description  « Hide
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)



 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Repository Revision Date User Message
ASF #669341 Thu Jun 19 00:40:17 UTC 2008 ppoddar OPENJPA-112,OPENJPA-111: Early check for 1-based positional parameter and no named parameter in native query. Also more specific error message
Files Changed
MODIFY /openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java
ADD /openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestNativeQueryParameterBinding.java
MODIFY /openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/localizer.properties

Repository Revision Date User Message
ASF #686349 Fri Aug 15 19:38:10 UTC 2008 ppoddar OPENJPA-111: Validate native SQL parameters by the numbers of parameters in StoreQuery level and bypass validation at facade layer
Files Changed
MODIFY /openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestQueryParameterBinding.java
MODIFY /openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/kernel/localizer.properties
MODIFY /openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryImpl.java
MODIFY /openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java
MODIFY /openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/localizer.properties
MODIFY /openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/SQLStoreQuery.java
MODIFY /openjpa/trunk/openjpa-kernel/src/main/resources/org/apache/openjpa/kernel/localizer.properties
MODIFY /openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/domain/Binder.java

Repository Revision Date User Message
ASF #686359 Fri Aug 15 20:34:36 UTC 2008 allee8285 OPENJPA-111: Minor message typo corrections.
Files Changed
MODIFY /openjpa/trunk/openjpa-kernel/src/main/resources/org/apache/openjpa/kernel/localizer.properties

Repository Revision Date User Message
ASF #686419 Fri Aug 15 23:36:16 UTC 2008 ppoddar OPENJPA-111: Modified tests to use correct binding parameter. Added methods in MetaDataRepository to look for NamedQuery only by name without defining class information.
Files Changed
MODIFY /openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java
MODIFY /openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/SimpleEntity2.java
MODIFY /openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/MetaDataRepository.java
MODIFY /openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestDupNamedQuery.java
MODIFY /openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/localizer.properties
MODIFY /openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java
MODIFY /openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/SimpleEntity.java
MODIFY /openjpa/trunk/openjpa-slice/src/test/java/org/apache/openjpa/slice/TestQuery.java

Repository Revision Date User Message
ASF #686421 Sat Aug 16 00:09:38 UTC 2008 ppoddar OPENJPA-111: Remove errorneous import
Files Changed
MODIFY /openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java