You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-java@ibatis.apache.org by Tegan Clark <te...@yahoo.com> on 2006/12/20 21:30:19 UTC
mode="INOUT" with custom type handler
Hi Group,
I've successfully implemented a custom type handler to handle an Oracle custom type. All works just fine as long as my custom type is registered as mode="IN". In Oracle it's actually an INOUT. As soon as i change the mode to INOUT in my map I get a "Invalid column type" from iBATIS when it types to map the parameters. My type handler never gets called, so the problems not in there (I think).
Here's the snippet of the map:
<parameterMap id="listErrorByClientSummaryParameters" class="java.util.Map">
<parameter property="report.dateRange" javaType="com.sc.domain.report.DateRange" jdbcType="DATERANGETYPE" mode="INOUT"/>
And the registration in the config:
<typeHandler javaType="com.sc.domain.report.DateRange" jdbcType="DATERANGETYPE" callback="com.sc.dal.reportBuilder.ibatis.typeHandler.DateRangeTypeHandler" />
Changing to INOUT throws me:
The error occurred in com/sc/dal/reportBuilder/ibatis/errorLogSummaryReport-map.xml.
The error occurred while executing query procedure.
Check the {call all_error_pkg.listErrorByClientSummary()}.
Check the output parameters (register output parameters failed).
Cause: java.sql.SQLException: Invalid column type; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:
The error occurred in com/aptare/sc/dal/reportBuilder/ibatis/errorLogSummaryReport-map.xml.
The error occurred while executing query procedure.
Check the {call all_error_pkg.listErrorByClientSummary()}.
Check the output parameters (register
output parameters failed).
Cause: java.sql.SQLException: Invalid column type
I read Oracle can throw this if you set a null on a column that doesn't have a type set, but I'm pretty sure I'm not in that boat.
Anyone on the list had any similar experiences?
All help greatly appreciated.
Tegan
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
Re: mode="INOUT" with custom type handler
Posted by Larry Meadors <lm...@apache.org>.
Hmm, jdbcType="DATERANGETYPE" should not work at all. I am surprised
it doesn't blow up...it probably should. ;-)
You may want to try jdbcType="OTHER" or "STRUCT" instead - it should
be something from java.sql.Types.
Larry
On 12/20/06, Tegan Clark <te...@yahoo.com> wrote:
>
>
> Hi Group,
>
>
> I've successfully implemented a custom type handler to handle an Oracle
> custom type. All works just fine as long as my custom type is registered as
> mode="IN". In Oracle it's actually an INOUT. As soon as i change the mode
> to INOUT in my map I get a "Invalid column type" from iBATIS when it types
> to map the parameters. My type handler never gets called, so the problems
> not in there (I think).
>
> Here's the snippet of the map:
>
> <parameterMap id="listErrorByClientSummaryParameters"
> class="java.util.Map">
> <parameter property="report.dateRange"
> javaType="com.sc.domain.report.DateRange" jdbcType="DATERANGETYPE"
> mode="INOUT"/>
>
> And the registration in the config:
>
> <typeHandler javaType="com.sc.domain.report.DateRange"
> jdbcType="DATERANGETYPE"
> callback="com.sc.dal.reportBuilder.ibatis.typeHandler.DateRangeTypeHandler"
> />
>
> Changing to INOUT throws me:
>
> The error occurred in
> com/sc/dal/reportBuilder/ibatis/errorLogSummaryReport-map.xml.
>
> The error occurred while executing query procedure.
> Check the {call all_error_pkg.listErrorByClientSummary()}.
>
> Check the output parameters (register output parameters failed).
> Cause: java.sql.SQLException: Invalid column type; nested exception is
> com.ibatis.common.jdbc.exception.NestedSQLException:
> The error occurred in
> com/aptare/sc/dal/reportBuilder/ibatis/errorLogSummaryReport-map.xml.
>
> The error occurred while executing query procedure.
> Check the {call all_error_pkg.listErrorByClientSummary()}.
>
> Check the output parameters (register output parameters failed).
> Cause: java.sql.SQLException: Invalid column type
>
> I read Oracle can throw this if you set a null on a column that doesn't have
> a type set, but I'm pretty sure I'm not in that boat.
>
> Anyone on the list had any similar experiences?
>
> All help greatly appreciated.
>
> Tegan
>
>
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com