MongoRepository 具有不同@Query 的相同方法

MongoRepository same methods with diferent @Query

使用 spring 数据 mongo 存储库 class,我该怎么做?我需要两次相同的方法,但在一次中我需要排除一个字段。

public interface Person extends MongoRepository<Person, String>{
        
    Optional<Person> findById(String id);

    @Query(fields="{ 'company': 0 }")
    Optional<Person> findById(String id);
}

这行不通,因为我不能两次使用相同的方法,有没有办法做到这一点?

当你想调用方法时,问题就出现了。调用哪个方法是不明确的。

如果您想使用 method overloading 使您的两个方法具有相同的名称,只有当它们具有不同的参数时才有可能。

这里有一个例子:

public interface Person extends MongoRepository<Person, String>{
        
    Optional<Person> findById(String id);

    @Query(fields="{ 'company': 0 }")
    Optional<Person> findById(String id, Boolean exclude);
}