• 在 元对象处理接口 实现类中,每次‘插入’‘修改’时都为 version 加 1。 | package com.wzy.bootmtp.handler;

    import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
    import org.apache.ibatis.reflection.MetaObject;
    import org.springframework.stereotype.Component;

    @Component
    public class MyMetaObjectHandler implements MetaObjectHandler {

    1. /*<br /> * @Description: 插入的自动填充<br /> * @Author: WangZiYao<br /> * @Date: 2021/9/8 23:54<br /> */<br /> @Override<br /> **public void **insertFill(MetaObject metaObject) {<br /> //获取要被填充的字段的值<br /> Object value = getFieldValByName(**"email"**, metaObject);<br /> //当字段为空时<br /> **if **(value == **null**) {<br /> setFieldValByName(**"email"**,**"wwww@qq.com"**,metaObject);<br /> }<br /> setFieldValByName(**"version"**,1,metaObject);<br /> }
    2. /*<br /> * @Description: 修改的自动填充<br /> * @Author: WangZiYao<br /> * @Date: 2021/9/8 23:54<br /> */<br /> @Override<br /> **public void **updateFill(MetaObject metaObject) {<br /> //获取要被填充的字段的值<br /> Object value = getFieldValByName(**"email"**, metaObject);<br /> //当字段为空时<br /> **if **(value == **null**) {<br /> setFieldValByName(**"email"**,**"wwww@qq.com"**,metaObject);<br /> }<br /> setFieldValByName(**"version"**,1,metaObject);<br /> }<br />}

    | | —- |

    特别说明:

    • 支持的数据类型只有 int,Integer,long,Long,Date,Timestamp,LocalDateTime
    • 整数类型下 newVersion = oldVersion + 1
    • newVersion 会回写到 entity
    • 仅支持 updateById(id)update(entity, wrapper) 方法
    • update(entity, wrapper) 方法下, wrapper不能复用!!!