Missing IN or OUT parameter exception with OracleDictionary
-----------------------------------------------------------
Key: OPENJPA-2131
URL: https://issues.apache.org/jira/browse/OPENJPA-2131
Project: OpenJPA
Issue Type: Bug
Components: jdbc
Affects Versions: 2.1.1
Environment: Windows with Oracle 11g
Reporter: Zilin Chen
We have generate query with
Query q = em.createQuery("select e._name, e._id, sum(case when
e._status=:pending then e._count else 0 end) from Exceptions e, Historty h
where e._guid = :guid and .....
then set paramenters for both :pending (in select) and :guid (in where), and
call q.setMaxResults(100);
with DB2, everything works fine, and DBDictionary.getSelects() and
SQLBuffer.append() will invoke correctly and set parameter of :pending
with Oracle implementation, OracleDictionary.getSelects(Select sel, boolean
distinctIdentifiers, boolean forUpdate) will invoke and SQLBuffer.getSQL() get
to call (as two if checks are not satisfied and gos to create a new SQLBuffer
instance), but this time :pending parameter will missing to add to _param List,
Eventually, we'll get Missing IN or OUT parameter exception from to execute
query by preparedStatement
This bug exist in both this branch and trunk.
We have a work around, after SQLBuffer.getSQL() call, add some code to reset
_param list.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira