Hi 
        I require to pass array list of java beans to stored proc 

If I send ArrayList with primitive data type it works but fails when
send objects in arrayList.

Error : java.sql.SQLException: Fail to convert to internal
representation

Any Help pointers appreciated 



Type Handler Implementation :

public void setParameter(ParameterSetter setter, Object parameter)
                        throws SQLException {

                if (parameter instanceof ArrayList) {
                        ArrayList arr = (ArrayList) parameter;
                        Statement stmt = setter.getPreparedStatement();
                        Connection conn = stmt.getConnection();
                        ArrayDescriptor desc =
ArrayDescriptor.createDescriptor("PROPERTYVALUE_COL",
                                        conn); // The STRARRAY is the
name of the oracle type
                                                        // created as
the instance of table.
                        parameter = new ARRAY(desc, conn,
arr.toArray());
                }
                setter.setObject(parameter);
        }

XML MAPPING


<parameterMap id="parameters4ab" class="map">
    <parameter property="i_array" jdbcType="PROPERTYVALUE_COL"
javaType="ArrayList"  mode="IN" 
              typeHandler=" StringArrayTypeHandler"/>
              
 <parameter property="employees" javaType="object"
typeName="EMPLOYEE_TBL"
               jdbcType="ARRAY" mode="OUT"
               typeHandler="EmployeeTableTypeHandlerCallback"/>
  </parameterMap>
  
  <procedure id="findEmployeesTbl_1" parameterMap="parameters4ab">
    <![CDATA[
     { call 
         declare 
           l_tbl employee_tbl; 
         begin 
           l_tbl := find_employees_1(?); 
           ? := l_tbl; 
         end 
     }
    ]]>
  </procedure>

Reply via email to