首页 > 解决方案 > MongoRepository 具有不同@Query 的相同方法

问题描述

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

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

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

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

标签: javaspring-bootspring-dataspring-mongodbspring-mongo

解决方案


当您要调用该方法时,就会出现问题。调用哪个方法将是模棱两可的。

如果您想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);
}

推荐阅读