Lembre-se do problema de duplicação de ID do algoritmo floco de neve quando MybatisPlus usa o método saveBatch para inserir em lotes.

MybatisPlus usa o método saveBatch para inserir em lote o problema de duplicação de ID do algoritmo floco de neve. (Java)
fundo :

O atributo de ID de entidade da inserção em lote usa a anotação @TableId(type = IdType.ASSIGN_ID) para realizar a geração de ID.
O código precisa inserir dados de entidade em lotes, use saveBatch(List); um erro de banco de dados é relatado: ID KEY entry is duplicado.

resolver :

Então tentei usar o método IdWorker.getId() para inserir o ID ao gerar a entidade e depois Debug para verificar a situação de geração do ID. Descobri que também havia um ID duplicado e observei os atributos da entidade para encontrar um regra. A entidade de ID duplicada e outros valores de atributo também são consistentes , existe uma suposição:
como os atributos da entidade são iguais, a atribuição do ID é afetada, resultando em IDs duplicados. Portanto, removi as entidades com atributos duplicados e gerados novamente.Com certeza, o ID não foi repetido.

Causa específica:

Como o tempo era relativamente curto naquela época, não vim verificar o código-fonte com pressa. Qual etapa causou esse problema, adicionarei mais tarde.

Acho que você gosta

Origin blog.csdn.net/AKALXH/article/details/130170340
Recomendado
Clasificación