mybatisPlus 自动填充值为null怎么处理
时间: 2024-03-27 18:38:06 浏览: 13
MybatisPlus 自动填充值为 null 的处理可以通过实现 com.baomidou.mybatisplus.core.handlers.MetaObjectHandler 接口来实现。在该接口中,我们可以重写 insertFill 和 updateFill 两个方法来实现自动填充。
例如,我们可以创建一个自定义的 MetaObjectHandler 类,然后在该类中重写 insertFill 和 updateFill 方法,如下所示:
```java
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
setFieldValByName("createTime", new Date(), metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
setFieldValByName("updateTime", new Date(), metaObject);
}
}
```
在上面的示例中,我们在 insertFill 和 updateFill 方法中分别为 createTime 和 updateTime 字段自动设置当前时间,这样就可以避免出现 null 值。
我们还需要在实体类中为这些字段添加注解,如下所示:
```java
@Data
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
}
```
在上面的示例中,我们在 createTime 字段上使用了 @TableField(fill = FieldFill.INSERT) 注解,表示在插入数据时自动填充该字段;在 updateTime 字段上使用了 @TableField(fill = FieldFill.INSERT_UPDATE) 注解,表示在插入和更新数据时自动填充该字段。
这样,当我们使用 MybatisPlus 进行插入或更新操作时,就会自动填充 createTime 和 updateTime 字段,避免了 null 值的出现。