依赖就不放了,烂大街
映射对象
对需要映射的字段createTime和updateTime,设置上相应注解
package com.rycem.meta.entity.event;
import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* @ClassName Event
* @Description 事件表DTO
* @Author 陈铭
* @Date 14:08 2023/4/6
* @Version 1.0
**/
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("event")
public class Event {
@TableId(value = "event_id", type = IdType.AUTO)
private Integer eventId;
@TableField("app_id")
private Integer appId;
@TableField("event_name")
private String eventName;
@TableField("alias_name")
private String aliasName;
@TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
}
handler
这里我们根据对象属性名来进行映射
- 在添加数据时,FieldFill.INSERT会去执行insertFill方法
- 在更新数据时,FieldFill.INSERT_UPDATEupdateFill方法
package com.rycem.meta.entity;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* DTO日期处理
**/
@Component
public class DateHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
this.setFieldValByName("createTime", new Date(), metaObject);
this.setFieldValByName("updateTime", new Date(), metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateTime", new Date(), metaObject);
}
}
使用
这里以更新为例,对event的别名进行更新,当不手动设置updateTime,MybatisPlus能够帮我们更新updateTime字段
public boolean update(EventUpdateBody body) {
Event event = get(body.getEventId());
event.setAliasName(body.getAliasName());
return this.updateById(event);
}
评论区