Mybatis-Plus设置主键ID生成策略、插入字段自动填充功能
文章目录1、设置主键ID生成策略2、插入字段自动填充功能1、设置主键ID生成策略如图,在主键字段上使用 @TableId(type = IdType.xxx) 即可设置主键生成策略类型。比如我这个userId字段,设置了type = IdType.UUID,在向表插入数据时,会自动生成uuid类型的主键。@TableName("tb_user")public class UserEntity ex
·
1、设置主键ID生成策略
如图,在主键字段上使用 @TableId(type = IdType.xxx) 即可设置主键生成策略类型。
比如我这个userId字段,设置了type = IdType.UUID,在向表插入数据时,会自动生成uuid类型的主键。
@TableName("tb_user")
public class UserEntity extends Model<UserEntity> {
private static final long serialVersionUID=1L;
/**
* 数据唯一标识
*/
@TableId(value = "id", type = IdType.UUID)
private String userId;
@TableField("user_name")
private String username;
}
可以选择的属性:
策略 | 含义 |
---|---|
AUTO | 数据库id自增 |
ID_WOKER | 默认全局唯一id |
ID_WOKER_STR | String类型的全局唯一id |
INPUT | 手动输入策略 |
UUID | 全局唯一 uuid |
NONE | 无策略 |
2、插入字段自动填充功能
如图,在需要的字段上使用 @TableField(fill = FieldFill.xxx) 即可设置插入字段自动填充功能。
比如我这个createTime字段,设置了fill = FieldFill.INSERT,在向表插入数据时,可以自动帮我填充这个字段的数据。
@TableName("tb_user")
public class UserEntity extends Model<UserEntity> {
private static final long serialVersionUID=1L;
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT, value = "create_time")
private Date createTime;
/**
* 结束时间
*/
@TableField(fill = FieldFill.UPDATE, value = "update_time")
private Date updateTime;
}
可以选择的属性:
属性 | 含义 |
---|---|
DEFAULT | 默认不处理 |
INSERT | 插入时填充字段 |
UPDATE | 更新时填充字段 |
INSERT_UPDATE | 插入和更新时填充字段 |
添加完注解后,还需要编写一个自动填充的类,好让我们配置需要生成哪些类型的值。
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
this.setFieldValByName("createTime", new Date(), metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateTime", new Date(), metaObject);
}
}
更多推荐
已为社区贡献3条内容
所有评论(0)