大腿的博客

Mybatas Plus 配置实体类公共字段

字数统计: 246阅读时长: 1 min
2018/12/03 Share

这段时间接的一个项目,建表要求有公共字段,持久层框架使用MP,有提供支持直接使用,操作很简单。

MP官网文档

地址

例子

MyMetaObjectHandler.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
public class MyMetaObjectHandler extends MetaObjectHandler {
/**
* 测试 user 表 name 字段为空自动填充
*/
public void insertFill(MetaObject metaObject) {
// 获取登录人
User user = UserUtils.getLoginUser();
if (null == user) {
user = new User();
}
// 新增时添加创建人字段
if (metaObject.hasGetter("createName")) {
Object createName = metaObject.getValue("metaObject");
if (StringUtils.isEmpty(createName)) {
metaObject.setValue("createName", user.getUserName());
}
}
... ...
}

@Override
public void updateFill(MetaObject metaObject) {
Object et = getFileValByName("et", metaObject);
if () {
if () {
User user = UserUtils.getLoginUser();
if (null == user) {
user = new User();
}
PublicEntity publicEntity = (PublicEntity)et;
publicEntity.setEditName(user.getUserName());
... ...
}
}
}
}

PublicEntity.java

公共字段类,实体类继承他,可以实现公共字段的继承,就可以不用单独写公共字段。

1
2
3
4
5
6
7
8
public abstract class PublicEntity<T extends Model> {
@TableField(fill = FieldFill.INSERT)
private String createName;

@TableField(fill = FieldFill.INSERT_UPDATE)
private String editName;
... ...
}

application.yml

1
2
3
4
5
6
mybatis-plus:
...
global-config:
...
meta-object-handler: xxx.xxx.xxx.xxx.MyMetaObjectHandler # Handlerd 的相对路径
...

原文作者:大腿君的大腿君

原文链接:https://shiyuquan.github.io/2018/12/03/Mybatas-Plus-配置实体类公共字段/

发表日期:2018-12-03 15:54:33

更新日期:2018-12-03 16:36:03

版权声明:来自于大腿的许可

CATALOG
  1. 1. MP官网文档
  2. 2. 例子
    1. 2.1. MyMetaObjectHandler.java
    2. 2.2. PublicEntity.java
    3. 2.3. application.yml