[ https://issues.apache.org/jira/browse/OPENJPA-2131?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14081122#comment-14081122 ]
ASF subversion and git services commented on OPENJPA-2131: ---------------------------------------------------------- Commit 1614937 from [~jpaheath] in branch 'openjpa/branches/2.2.1.x' [ https://svn.apache.org/r1614937 ] OPENJPA-2131: Missing IN or OUT parameter exception with OracleDictionary - back ported Albert Lee's trunk commit. > 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 > Assignee: Albert Lee > Fix For: 2.3.0 > > Attachments: OPENJPA-2131.22x.patch, OracleInOutParameterIssue.patch > > > 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 was sent by Atlassian JIRA (v6.2#6252)