Java Spring Boot-Mongo |保存大量对象集合时出现重复键错误
我有一个Java Spring Boot-Mongo |保存大量对象集合时出现重复键错误,java,mongodb,spring-boot,spring-mongodb,Java,Mongodb,Spring Boot,Spring Mongodb,我有一个springboot应用程序,它提供一次处理和保存大约100个对象的服务 在处理状态之前,一切似乎都正常,但调用MongoRepository的save方法会引发以下异常: com.mongodb.DuplicateKeyException: Write failed with error code 11000 and error message 'E11000 duplicate key error collection: uhtableau_db.ticket index: _id_
springboot
应用程序,它提供一次处理和保存大约100个对象的服务
在处理状态之前,一切似乎都正常,但调用MongoRepository
的save
方法会引发以下异常:
com.mongodb.DuplicateKeyException: Write failed with error code 11000 and error message 'E11000 duplicate key error collection: uhtableau_db.ticket index: _id_ dup key: { : 0 }'
我在清理数据库后也重试了,但还是出现了相同的错误。无法理解我做错了什么
以下是文档对象:
@Document
public class Ticket {
public Ticket(){
}
@Id
private long id;
private long ticket_id; // this is the field in the json which i am processing
private String topic;
private List<String> tag;
private String type;
private long brand;
private long group;
private String priority;
private String status;
private String created_at;
private String channel;
和TicketRepository
:
public interface TicketRepository extends MongoRepository<Ticket, Long> {
}
public interface TicketRepository扩展了MongoRepository{
}
如果需要使用空值(spring data mongo用于进行新插入),可以使用@Id
的相应对象
当然,解析阶段中的“
parseJsonForTicketList
”方法会将id设置为值0。如果您需要使用空值的能力(spring data mongo用于进行新插入),您可以为@id
使用相应的对象
当然,解析阶段中的“
parseJsonForTicketList
”方法会将id设置为值0。我希望您将“id”字段集保存到数据库中。这似乎一直都是相同的值。您可能需要自己注释一些生成器或设置唯一ID?我同意@Konrad所说的。尝试创建您自己的唯一id或将其保留为空/空。mongo将负责为您创建新id。我希望您将“id”字段集保存到数据库中。这似乎一直都是相同的值。您可能需要自己注释一些生成器或设置唯一ID?我同意@Konrad所说的。尝试创建您自己的唯一id或将其保留为空/空。mongo将负责为您创建新id
public interface TicketRepository extends MongoRepository<Ticket, Long> {
}
@Id
private Long id