当前使用版本(必填,否则不予处理)

3.4.2

该问题是如何引起的?(确定最新版也有问题再提!!!)

业务

重现步骤(如果有就写完整)

  1. 当前端 要清除选择框的值后传到后端 VO接收,字段更新问题,对于String类型的 字段 ,前端可以传 空字符串解决。但是 对于数字类型Long类型传什么能触发saveOrUpdate数据库更新呢。 只能给所有Long类型表关联ID字段加 @TableField(updateStrategy= FieldStrategy.IGNORED) 吗

报错信息

没有

Comment From: qmdx

注解允许置空 @TableField(updateStrategy= FieldStrategy.IGNORED) 或者 wrapper.set("字段", 。。。) 或者 xml 自己写 SQL

Comment From: liuzhe101

这样是可以解决 但都是不全面(如果加到实体类,其他接口给实体VO未赋值,会造成错误更新)或者很麻烦(接口都需要wrapper.set )或者说saveOrUpdate不适用进行保存或更新操作。 能否有其他后期优化,比如字段值是某值的时候 更新的时候就全局更新为null。 这样是不是间接避免了歧义。传了Long字段 空字符串未更新,或者 未传 但配了@TableField(updateStrategy= FieldStrategy.IGNORED)又更新了的问题。

Comment From: liuzhe101

注解允许置空 @TableField(updateStrategy= FieldStrategy.IGNORED) 或者 wrapper.set("字段", 。。。) 或者 xml 自己写 SQL

使用@TableField(updateStrategy= FieldStrategy.IGNORED) 在使用 saveOrUpdate 不行, 通过实体接受参数。 空传过来。Long类型字段接受。 都是null 传不传都会更新为空。有问题。 如果采用 wrapper.set("字段", 。。。) 我有怎么判定 更新不更新。这个字段呢。因为获取到都是 null。。

Comment From: qmdx

注解允许置空 @TableField(updateStrategy= FieldStrategy.IGNORED) 或者 wrapper.set("字段", 。。。) 或者 xml 自己写 SQL

使用@TableField(updateStrategy= FieldStrategy.IGNORED) 在使用 saveOrUpdate 不行, 通过实体接受参数。 空传过来。Long类型字段接受。 都是null 传不传都会更新为空。有问题。 如果采用 wrapper.set("字段", 。。。) 我有怎么判定 更新不更新。这个字段呢。因为获取到都是 null。。

如何判断是业务上的问题,这个没有标准答案