基于mybatisPlus的默认生成器 - DefaultIdentifierGenerator
场景:压测环境下。单个服务实例
展示部分伪代码
一 场景
原因:saveBatch方法中对象重复了
Man man = new Man();
man = Man.builder().age(1).email("@1").name("name1:").build();
list3.add(man);
list3.add(man);
list3.add(man);
manService.saveBatch(list3);
二 场景
原因:多线程环境
public Thread getThread(){
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
int i = 100000000;
for (int j = 0; j < i; j++) {
long value = identifierGenerator.nextId(new Object()).longValue();
list.add(value);
if (set.contains(value)) {
System.out.println(value);
continue;
}
set.add(value);
}
}
});
return thread;
}
public void idTest1() throws InterruptedException {
getThread().start();
getThread().start();
getThread().start();
getThread().start();
getThread().start();
getThread().start();
getThread().start();
getThread().start();
}