MyBatisPlus自动填充和逻辑删除
逻辑删除:向实体类的逻辑删除字段添加@TableLogic(value = "0", delval = "1")注解.添加后,plus的语句会自动加上逻辑删除字段的判断(自己在xml文件中写的SQL依然需要自己维护逻辑删除的判断).
去除@TableLogic(value = "0", delval = "1")注解后,plus的语句恢复正常增删改查.
自动填充:有些字段如添加时间,添加用户,修改时间,修改用户.通过配置MetaObjectHandler的实现类,在实体类上加入@TableField(fill = FieldFill.INSERT_UPDATE)注解,即可实现自动在增改的时候进行赋值.
package com.test.boot.demo.util; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; //import com.gosun.isap2.common.core.util.UserUtil; import java.util.Date; /** * @description 自定义的数据填充handler,分别写insert和update的写入策略。 * @ClassName: MyFillDataMetaObjectHandler mybatis-plus-generator 3.0.0 */ @Component public class MyFillDataMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>"); this.strictInsertFill(metaObject, "addTime", Date.class, new Date()); this.strictInsertFill(metaObject, "updateTime", Date.class, new Date()); // this.strictInsertFill(metaObject, "addUser", String.class, UserUtil.getUser().getUserName()); this.strictInsertFill(metaObject, "addUser", String.class, "LZK"); this.strictInsertFill(metaObject, "isDelete", String.class, "0"); System.out.println("<<<<<<<<<<<<<<<<<<<<<<<"); } @Override public void updateFill(MetaObject metaObject) { this.strictUpdateFill(metaObject, "updateTime", Date.class, new Date()); // this.strictInsertFill(metaObject, "updateUser", String.class, UserUtil.getUser().getUserName()); } /* 逻辑删除向实体类中逻辑删除字段增加注解 @TableLogic(value = "0", delval = "1")//定义逻辑删除功能。 @TableField(fill = FieldFill.INSERT)//定义在insert的时候自动填充功能 this.fillStrategy(metaObject, "createTime", LocalDateTime.now()); // (3.3.0该方法有bug 请升级到之后的版本如 3.3.1.8-SNAPSHOT) */ }
package com.test.boot.demo.entity; import com.baomidou.mybatisplus.annotation.*; import java.util.Date; import java.io.Serializable; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; /** * <p> * 考题设置表 * </p> * * @author Zongkai.Li * @since 2021-01-11 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("t_examination_questions") @ApiModel(value="ExaminationQuestions对象", description="考题设置表") public class ExaminationQuestions implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "id") @TableId(value = "id", type = IdType.AUTO) private Long id; @ApiModelProperty(value = "编码") private String code; @ApiModelProperty(value = "标题") private String titleName; @ApiModelProperty(value = "题目分数") private Long questionScore; @ApiModelProperty(value = "是否必答 1:是 0:否") private String isRequired; @ApiModelProperty(value = "提示") private String tips; @ApiModelProperty(value = "层级ID") private Long tierId; @ApiModelProperty(value = "是否删除(1:已删除; 0:未删除)") @TableLogic(value = "0", delval = "1") @TableField(fill = FieldFill.INSERT) private String isDelete; @ApiModelProperty(value = "添加时间") @TableField(fill = FieldFill.INSERT) private Date addTime; @ApiModelProperty(value = "添加用户") @TableField(fill = FieldFill.INSERT) private String addUser; @ApiModelProperty(value = "更新时间") @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime; @TableField(fill = FieldFill.INSERT_UPDATE) @ApiModelProperty(value = "更新用户") private String updateUser; }
上一篇:
Python 安装包管理工具 pip
下一篇:
IDEA类和方法注释模板设置