概述
使用Mybatis-PLus之后可以在字段上打一个标签
@TableFiled可以减少重复性的为某些字段设置值
举这样一个例子,假如有多个实体类中都有updateTime,updateId这样的字段。之前的做法
User user = new User();
user.setUpdateTime(System.curretTime());
//简写
user.setCreateId(session.getUser().getId());
实体类User
@TableName("t_user")
public class User implements Serializable {
/**
* 更新人名称
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private String updateName;
/**
* 更新人ID
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private Integer updateId;
/**
* 更新时间
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
}
实体类Comment
@TableName("t_comment")
public class Comment implements Serializable {
/**
* 更新人名称
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private String updateName;
/**
* 更新人ID
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private Integer updateId;
/**
* 更新时间
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
}
以后每一类就不用进行重复性的设置值操作了,只需要在对应的实体类的字段上,打上一个@TableFiled的注解。来解决重复性的设置值问题
方式
1,在spring的配置类中去设置。mp框架帮你把将重复性的字段赋值
/实现这样一个接口,重写里面的方法
public class InitMetaObjectHandler implements MetaObjectHandler/ {
//你需要填充的字段
private final static String CREATE_TIME = "createTime";
private final static String CREATE_ID = "createId";
@Override
public void insertFill(MetaObject metaObject) {
Object createTime = getFieldValByName(CREATE_TIME, metaObject);
Object createId = getFieldValByName(CREATE_ID, metaObject);
if (createTime == null) {
setFieldValByName(CREATE_TIME, date, metaObject);
}
if (createId == null) {
setFieldValByName(CREATE_ID, userId, metaObject);
}
}
/**
* 更新填充
*/
@Override
public void updateFill(MetaObject metaObject) {
Integer userId = JwtUtils.getUserId();
String userName = JwtUtils.getUserName();
setFieldValByName(UPDATE_TIME, LocalDateTime.now(), metaObject);
setFieldValByName(UPDATE_ID, userId, metaObject);
setFieldValByName(UPDATE_NAME, userName, metaObject);
}
}
2,在每个实体类的对应字段上打上标签
@TableName("t_user")
public class User implements Serializable {
/**
* 创建人名称
*/
@TableField(fill = FieldFill.INSERT)
private String createName;
/**
* 创建人ID
*/
@TableField(fill = FieldFill.INSERT)
private Integer createId;
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
}
经过这样的设置,在对user对象持久化时,不用
user.setUpdateTime(System.curretTime());
//简写
user.setCreateId(session.getUser().getId());
操作
最后
以上就是健忘芹菜为你收集整理的Mybatis-Plus字段自动填充的配置的全部内容,希望文章能够帮你解决Mybatis-Plus字段自动填充的配置所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复