在维护一个老项目中碰到的问题。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默认值,问题解决。
没处理前报错为“对于造型说明无效的字符值”。