天天看点

MyBatis--------MybatisPlus继承体系小记录

@Data
public class BaseDO {

    @TableField(fill = INSERT)
    @TableLogic
    protected Integer isDeleted;

    @TableField(fill = INSERT_UPDATE)
    protected Date gmtCreate;
    @TableField(fill = INSERT_UPDATE)
    protected Date gmtModified;
    @TableField(fill = INSERT)
    protected String createId;
}

@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@TableName(value = "t_xxx")
@Accessors(chain = true)
public class RuleDO extends BaseDO {

    private String id;
    private String ruleName;
    private Integer type;
    private String calculateTypeId;
}      
@Configuration
public class MybatisPlusConfig {


    @Component
    static class XXX implements MetaObjectHandler {

        @Override
        public void insertFill(MetaObject metaObject) {
            // 对应实体需要标注@TableField(fill = FieldFill.INSERT) 或
            //                @TableField(fill = FieldFill.INSERT_UPDATE)
            this.strictInsertFill(metaObject, "createId", String.class,
                    "1");
            this.strictInsertFill(metaObject, "gmtCreate", Date.class, new Date());
          
            this.strictInsertFill(metaObject, "gmtModified", Date.class, new Date());
            this.strictInsertFill(metaObject, "isDeleted", Integer.class, 0);
        }

        @Override
        public void updateFill(MetaObject metaObject) {
            // 对应实体需要标注@TableField(fill = FieldFill.UPDATE) 或
            //                @TableField(fill = FieldFill.INSERT_UPDATE)
            setFieldValByName("gmtModified", new Date(), metaObject);
        }
    }
}