version:3.1.0

假设一个Test.class

@Data
public class Test implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    private String description;
}

例如:数据库中此字段description的值为123; 但是我想更新某条数据时,使用updateById(),在执行更新时设置了此字段description=null,想把之前的123置空,但是却被忽略处理了 后面通过使用:@TableField(strategy=FieldStrategy.IGNORED)

@Data
public class Test implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @TableField(strategy=FieldStrategy.IGNORED)
    private String description;
}

虽然可以实现需求,但是如果直接在生成的实体类中这么改的话,但是有的需求以及场景想让它不忽略,想让它去校验如果此字段为null或者“”时,不去处理此字段,用的同一个实体类到底加FieldStrategy.IGNORED还是不加FieldStrategy.IGNORED呢?这就比较尴尬了,在公司中经常因为这个头疼,还需要单独写一个更新sql语句

多么希望在以后的版本中能多出一个方法: 一个是直接更新,空的字段也设置到数据库:updateById 一个是需要验证字段不为空时更新:updateByIdSelective

Comment From: miemieYaho

不支持