У меня проблема с обновлением документов после обновления mongodb-driver-реактивные потоки версия 1.6.0 до 1.9.0 и выше
Объект, который должен быть обновлен, выглядит как
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.domain.Persistable;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import java.io.Serializable;
import java.time.Instant;
@Data
@Document
@NoArgsConstructor
public class Device implements Serializable, Persistable<String> {
@Id
private String id;
private String deviceId;
@Indexed
@LastModifiedDate
private Instant lastRecorded;
public void setId(String id) {
}
public void setDeviceId(String deviceId) {
this.deviceId = deviceId;
this.id = deviceId;
}
@Override
public String getId() {
return id;
}
@Override
public boolean isNew() {
return lastRecorded == null;
}
}
До обновления все работало нормально, после того, как я получаю такую ошибку:
org.springframework.dao.DuplicateKeyException: E11000 duplicate key error index: db2.device.$_id_ dup key: { : "815CM0427E0001510" }; nested exception is com.mongodb.MongoWriteException: E11000 duplicate key error index: db2.device.$_id_ dup key: { : "815CM0427E0001510" }
Для сохранения / переопределения документа я использую ReactiveMongoRepository # save метод.Как мне изменить приложение, чтобы оно снова заработало, или, может быть, есть какая-то ошибка?
Вот также мой файл конфигурации для подключения:
@Profile(DEV)
@Configuration
public class MongoDevConfig extends AbstractReactiveMongoConfiguration {
@Value("${spring.data.mongodb.uri}")
private String uri;
@Value("${spring.data.mongodb.database}")
private String database;
@Override
public MongoClient reactiveMongoClient() {
return MongoClients.create(new ConnectionString(uri));
}
@Override
protected String getDatabaseName() {
return database;
}
Также, если это поможет в любом случаеЯ использую spring-boot 2.1.1