исключение дубликата ключа с использованием Spring Boot + JPA Mon go DB - PullRequest
0 голосов
/ 07 января 2020

Я получаю исключение дубликата ключа (см. Внизу) при сохранении объекта в БД go. Однако код довольно прост, и сначала он пытается получить объект:

@Service
public class UsersPlayersService extends AbstractService {

    public UsersPlayers add(String firebaseId, UserPlayerDetails userPlayerDetails) {
        UsersPlayers usersPlayers = usersPlayersRepository.findByFirebaseId(firebaseId);
        if (usersPlayers == null) {
            usersPlayers = new UsersPlayers();
        }
        usersPlayers.setFirebaseId(firebaseId);
        Set<UserPlayerDetails> details = usersPlayers.getUserPlayerDetails();
        details.remove(userPlayerDetails);
        details.add(userPlayerDetails);
        return usersPlayersRepository.save(usersPlayers);
    }

}

Контроллер покоя:

@PostMapping(value = "/{firebaseId}/add") 
@ApiOperation(value = "Add user player details to existing user's players, create if it doesn't exist") 
public UsersPlayers add(
    @PathVariable("firebaseId") String firebaseId, 
    @RequestBody UserPlayerDetails userPlayerDetails) {

   return usersPlayersService.add(firebaseId, userPlayerDetails); 
}

Мой объект выглядит так:

    class UsersPlayers {

        public UsersPlayers() {}

        @Id
        private ObjectId id;

        @JsonProperty
        @Indexed(unique = true)
        private String firebaseId;
...

И ошибка:

org.springframework.dao.DuplicateKeyException: E11000 duplicate key error collection: fantisserie.UsersPlayers index:
 firebaseId dup key: { : "UWRQZJzLMVesBpwSVQywfBIgw5j2" }; nested exception is com.mongodb.MongoWriteException: E1100
0 duplicate key error collection: fantisserie.UsersPlayers index: firebaseId dup key: { : "UWRQZJzLMVesBpwSVQywfBIgw5
j2" }
        at org.springframework.data.mongodb.core.MongoExceptionTranslator.translateExceptionIfPossible(MongoException
Translator.java:101) ~[spring-data-mongodb-2.1.11.RELEASE.jar!/:2.1.11.RELEASE]
        at org.springframework.data.mongodb.core.MongoTemplate.potentiallyConvertRuntimeException(MongoTemplate.java:
2793) ~[spring-data-mongodb-2.1.11.RELEASE.jar!/:2.1.11.RELEASE]

Любые идеи о том, что я делаю неправильно, очень ценятся!

...