You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by Spurthy Rayapati <sp...@psipower.com> on 2019/06/25 21:27:01 UTC

Column data unavailable in DBDicitonary setUnknown method

Our project uses EJB3 with OpenJPA 2.4.3 and TOMEE plume 7.1.0

We have a custom /DBDictionary /that requires the Column data passed to 
this method:

     - public void setUnknown(PreparedStatement stmt, int idx, Object val,*Column col)*  throws SQLException {

When a prepared statement is executed, the logic 
in//org.apache.openjpa.jdbc.kernel.PreparedSQLStoreQuery.java calls 
DBDictionary.setUnknown with a hard-coded NULL value for Column parameter.

//


We have an older version of 
org.apache.openjpa_1.3.0.0_1-1-1-SNAPSHOT.jar packaged in Weblogic and 
the DBDictionary  setUnknown works correctly. Column data is passed in 
correctly.

To get around this issue, we tried the following change and the rest of 
our logic works as expected. Please advise if this change is correct or 
if you suspect any other issues with this code.

             ResultObjectProvider rop;
             PreparedStatement stmnt = null;
             try {
                 stmnt = !range.lrs ? buf.prepareStatement(conn) : buf.prepareStatement(conn, fetch, -1, -1);
                 int index = 0;
                 SelectImpl cachedSelect = pq.getSelect();
                SQLBuffer sqlBuffer = cachedSelect.getSQL(); List columns = 
sqlBuffer.getColumns(); for (int i = 0; i < params.length; i++) {
                    */if(columns != null && columns.size()>i) 
{/**//**/dict.setUnknown(stmnt, ++index, params[i], 
(org.apache.openjpa.jdbc.schema.Column) columns.get(i));/**//**/} else 
{/**//**/dict.setUnknown(stmnt, ++index, params[i], null);/**//**/}/*
                 }
                 dict.setTimeouts(stmnt, fetch, false);

                 ResultSet rs = stmnt.executeQuery();

                 Result res = cachedSelect.getEagerResult(conn, stmnt, rs, store, fetch, false, null);

Your help is greatly appreciated

Thanks

-- 

**Spurthy Rayapati**
/Sr Software Developer/
Physical Systems Integration <http://www.psipower.com>