1. 主键ID设置@Table(type=IdType.AUTO)后报错,或者数据库任然保持19位默认雪花加密
- 没设置数据库主键ID为自增。
- 遇到任然雪花加密的措施,网上说法是数据库自增关了再开,试了没用,直接删表重建发现有用。
2.给enetity字段的时间设置自动填充
- 在给类型添加标签-
@TableField(fill = FieldFill.INSERT)和 @TableField(fill = FieldFill.INSERT_UPDATE)
- 重写标签自定义实现类 MyMetaObjectHandler
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
private static final ZoneId ZONE_UTC = ZoneId.of("UTC");
@Override
public void insertFill(MetaObject metaObject) {
this.setFieldValByName("createTime", new Date(), metaObject);
this.setFieldValByName("updateTime", new Date(), metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateTime", new Date(), metaObject);
}
}
3. 乐观锁问题
-
乐观锁十分乐观,总是认为不会出现问题。无论干什么都不会去上锁。如果出现问题就再测试加锁处理。
-
悲观锁,觉得总会出问题,所以干什么都会先上锁。
乐观锁实现方式:
取出记录时,获取当前 version
更新时,带上这个 version
执行更新时, set version = newVersion where version = oldVersion
如果 version 不对,就更新失败 -
注意版本更新,改mbp版本为3.4.2即可