在维护一个老项目中碰到的问题。SQL配置如下(只简单列出两个字段):
<update id="ProjectInfo.Update" parameterClass="ProjectInfo">
update ProjectInfo
<dynamic prepend="set">
<isNotEmpty prepend="," property="ProName">proName=#ProName#</isNotEmpty>
<isNotEqual prepend="," property="ApproveDate" compareValue="0001-1-1 0:00:00">approveDate=#ApproveDate#</isNotEqual>
</dynamic>
where ID = #ID#
</update>
其中 ApproveDate为DateTime类型,可能是IBatisNet版本的原因实体定义成DateTime?发现不支持。
最后发现使用isNotEqual排除DateTime默认值,问题解决。
没处理前报错为“对于造型说明无效的字符值”。