首页 > 解决方案 > spring data - mongoDB - 为什么要创建多个对象?

问题描述

我有如下代码:

public Foo add(String firebaseId) {
    Foo foo = fooRepository.findByFirebase(firebaseId);
    if (foo == null) {
        foo = new Foo();
    }
    foo.setFirebaseId(firebaseId);
    return fooRepository.save(foo);
}

public interface UsersPlayersRepository extends MongoRepository<Foo, ObjectId> {

    Foo findByFirebaseId(String firebaseId);
}

@Document(collection = "foo")
public class Foo {

    public Foo() {}

    @Id
    @JsonIgnore
    private ObjectId id;

    @JsonProperty
    private String firebaseId;
....

但不知何故,我后来在日志中看到了检索错误:

错误] 2019-12-27 01:15:07.985 [http-nio-9000-exec-408] [dispatcherServlet] - servlet [dispatcherServlet] 的 Servlet .service() 在路径 [] 的上下文中抛出异常 [请求处理失败; 嵌套异常是 org.springframework.dao.IncorrectResultSi zeDataAccessException: Query { "$java" : Query: { "firebaseId" : "3OdjeUiCkOeKzH1ETvGL HjH0xLv1" }, Fields: { }, Sort: { } } returned non unique result.] with root原因

我想确保只存储唯一的 Firebase 项目?我的施工有问题吗?

标签: javaspring-data-jpaspring-mongodb

解决方案


推荐阅读