- 在 元对象处理接口 实现类中,每次‘插入’‘修改’时都为 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 {
/*<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 /> }
/*<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
不能复用!!!