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_STRString类型的全局唯一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);
    }
}
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐