我们可以通过@TableId注解的 类型属性来设置主键id的增长策略
- ASSIGN_ID(雪花算法)
如果不设置类型值,默认则使用IdType.ASSIGN_ID策略(自3.3.0起)。该策略会使用雪花算法自动生成主键ID,主键类型为长或字符串(分别对应的MySQL的表字段为BIGINT和VARCHAR) - ASSIGN_UUID(排除中划线的UUID)
如果使用IdType.ASSIGN_UUID策略,并重新自动生成排除中划线的UUID作为主键。主键类型为String,对应MySQL的表分段为VARCHAR(32)
public class User {
// @TableId(type= IdType.AUTO)
@TableId(type= IdType.ASSIGN_UUID)
private Long id;
private String name;
private Integer age;
private String email;
}
- AUTO(数据库ID自增)
对于像MySQL这样的支持主键自动递增的数据库,我们可以使用IdType.AUTO策略。 - INPUT(插入前自行设置主键值)
- NONE(无状态)
如果使用IdType.NONE策略,表示未设置主键类型(注解里等于跟随上下,左右里约等于INPUT)
网友评论