[
http://issues.apache.org/jira/browse/IBATIS-224?page=comments#action_12367864 ]
Sven Boden commented on IBATIS-224:
-----------------------------------
Following "hack" in UnknownTypeHandler will make it work for IBATIS-224/210...
but is not available until Java 5 (1.5), and it also has some implications for
generics so I would suggest to put this JIRA and IBATIS-210 on the back-burner
for now. It will require some more thought:
public void setParameter(PreparedStatement ps, int i, Object parameter,
String jdbcType)
throws SQLException {
Class searchClass = parameter.getClass().getEnclosingClass();
if ( searchClass == null ) {
searchClass = parameter.getClass();
}
TypeHandler handler = factory.getTypeHandler(searchClass, jdbcType);
handler.setParameter(ps, i, parameter, jdbcType);
}
> isNotNull node causes typehandler mappings in statement to fail
> ---------------------------------------------------------------
>
> Key: IBATIS-224
> URL: http://issues.apache.org/jira/browse/IBATIS-224
> Project: iBatis for Java
> Type: Bug
> Components: SQL Maps
> Versions: 2.1.6
> Environment: linux/java 1.5
> Reporter: Reuben Firmin
> Priority: Critical
> Attachments: ibatis-224_sven.zip, ibatis224.tar.gz
>
> Here's my insert statement.
> <insert id="createDeployment" parameterClass="deployment">
> INSERT INTO Deployment (
> environmentId, deploymentTypeId, deploymentStatusId,
> deploymentTime
> <isNotNull
> property="threadCountOverride">,threadCountOverride</isNotNull>
> ) VALUES (
> #environmentId#, #deploymentTypeId#, #deploymentStatusId#,
> #deploymentTime#
> <isNotNull
> property="threadCountOverride">,#threadCountOverride#</isNotNull>
> )
> <selectKey resultClass="int" keyProperty="deploymentId">
> SELECT @@IDENTITY as value
> </selectKey>
> </insert>
> deploymentTypeId and deploymentStatusId are enums in the bean, mapped to
> values using custom type handlers. Without the isNotNull structure around
> threadCountOverride (which *is* nullable), the statement works. With the
> isNotNull, deploymentStatusId and deploymentTypeId are mapped to
> UnknownTypeHandler, and the insert fails to map the parameters from the bean.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira