MyBatis对时间参数判空比较特殊,与其他类型参数校验不同
只能校验是否为null,不能校验是不是空字符串""
例如:针对update_time字段校验,只能有"dateDTO != null"
<insert id="addIndicator">
INSERT into dmc_audit_doc_template_indicator(
doc_template_id,
indicator_code,
<if test="addDTO.objCode != null and addDTO.objCode != ''">
obj_code,
</if>
<if test="addDTO.accountTime != null and addDTO.accountTime != ''">
account_time,
</if>
seq,
status,
create_time,
<if test="dateDTO != null">
update_time,
</if>
params
)
VALUES (
#{addDTO.docTemplateId},
#{addDTO.indicatorCode},
<if test="addDTO.objCode != null and addDTO.objCode != ''">
#{addDTO.objCode},
</if>
<if test="addDTO.accountTime != null and dateDTO != ''">
#{addDTO.accountTime},
</if>
#{addDTO.seq},
1,
#{createTimeDTO},
<if test="dateDTO != null ">
#{dateDTO},
</if>
#{addDTO.params}
)
</insert>
不能写成"dateDTO != null and dateDTO != ''",会报错
### Error updating database. Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
### Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:77)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)
at com.sun.proxy.$Proxy157.insert(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:278)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:58)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)
at com.sun.proxy.$Proxy167.addIndicator(Unknown Source)