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>