- 背景
由于要支持多数据中心,每个数据中心中数据主键不能与其他数据中心的数据有重复的主键;
- 使用须知
1.数据库主键相关数据类型必须是18位以上的数字
2.代码中的主键相关数据类型必须是18字节以上数字
3.所有接口提供开发需要将涉及主外键字段转换成字符串返回(解决javascript数据类型精度不足问题)
- 使用步骤
配置方案:
1.环境变量配置SNOWFLAKE_DATA_CENTER_ID Snowflake数据中心id属性 ,值仅能为0、1、2、3(不配置的话默认为0)
2.在model属性修改成如下配置
@Id @GeneratedValue(generator = "idGenerator") @GenericGenerator(name = "idGenerator", strategy = "com.jinnjo.base.twitter.hibernate.GenerateId") @Column(name = "id", nullable = false) @JsonFormat(shape = JsonFormat.Shape.STRING) @ApiModelProperty(value = "主键", name = "id") private PK id; |
---|
说明:红色字体为生产主键、蓝色字体将字符串进行返回时候渲染成字符