MyBatis对时间参数判空报错

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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值