mybatis-plus(版本3.4.3)使用自定义ID,通过查询SQLServer的序列Sequence,去生成主键。Sequence定义的自增量是1,但是通过mybatis-plus查询获取就变成了2,在navicat上执行sql自增是1的,代码运行后却自增2,不知道是什么原因,有没有解决方法?。
public Number nextId(Object entity) {
String DateFormat = DateUtil.format(new Date(), "yyyyMMdd");
Long seqId = sysCommonSeqService.getNextSysIdSeq();
String seq = String.format("%010d",seqId);
Long id = Long.parseLong(DateFormat+seq);
log.info("生成主键值->:{}", id);
return id;
}
}
SQL语句如下:
select next value for SeqTxnId
15:57:08.740 [http-nio-8090-exec-1] INFO c.t.r.c.CustomIdGenerator - [nextId,31] - 生成主键值->:202112060000003486
15:57:08.742 [http-nio-8090-exec-1] INFO c.t.r.c.CustomIdGenerator - [nextId,31] - 生成主键值->:202112060000003488
15:57:08.747 [http-nio-8090-exec-1] INFO c.t.r.c.CustomIdGenerator - [nextId,31] - 生成主键值->:202112060000003490
15:57:08.748 [http-nio-8090-exec-1] INFO c.t.r.c.CustomIdGenerator - [nextId,31] - 生成主键值->:202112060000003492
主键应该自增量为1,而不是2
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。
因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。