Mybatis Plus使用@TableId
1. TableId 可选类型不添加注解时,默认使用ID_WORKER(3)public enum IdType {/*** 数据库ID自增*/AUTO(0),/*** 该类型为未设置主键类型(将跟随全局)*/NONE(1),/*** 用户输入ID* <p>该类型可以通过自己注册自动填充插件进行填充</p>*/INPUT(2),
·
1. @TableId
1.1 @TableId 可选类型
不添加注解时,默认使用ID_WORKER(3)
public enum IdType {
/**
* 数据库ID自增
*/
AUTO(0),
/**
* 该类型为未设置主键类型(将跟随全局)
*/
NONE(1),
/**
* 用户输入ID
* <p>该类型可以通过自己注册自动填充插件进行填充</p>
*/
INPUT(2),
/* 以下3种类型、只有当插入对象ID 为空,才自动填充。 */
/**
* 全局唯一ID (idWorker)
*/
ID_WORKER(3),
/**
* 全局唯一ID (UUID)
*/
UUID(4),
/**
* 字符串全局唯一ID (idWorker 的字符串表示)
*/
ID_WORKER_STR(5);
}
1.2 @TableId(value = “id”,type= IdType.AUTO)
使用条件:
id 类型可以是Interger/Long;
数据库主键id,mysql必须设置自增主键,postgreSQL必须设置自增序列(例如:主键类型 serial4),才能够使用此注解。
1.3 @TableId(value = “id”,type= IdType.ID_WORKER)
使用条件:
id 类型必须是Long;
因为ID_WORKER 生成的snowflakeId 是19位的全局id。
2. 非主键字段添加@TableId
如果一张表只是一个关联表,非主表,只保存了主表的id。但任然需要通过这个字段对关联表进行CRUD。
此时只需要在关联表的该字段上加@TableId ,即可使用 mybatis-plus mapper自带的方法;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
@Data
@TableName("fbr_basic_info")
public class FBRBasicInfoEntity {
@TableId
private Integer fbrInfoId;
private String fbrType;
private String fbrTypeCode;
}
使用示例
查询
FBRBasicInfoEntity basicInfoEntity = fbrBasicInfoMapper.selectById(fbrInfoId);
新增
FBRBasicInfoEntity basicInfoEntity = FBRAssemble.trans(basicInfoVO);
fbrBasicInfoMapper.insert(basicInfoEntity);
修改
fbrBasicInfoMapper.updateById(basicInfoEntity);
亲测可用。
更多推荐
已为社区贡献3条内容
所有评论(0)