我正在尝试使用 Spring 数据调用自定义 mongoDB 查询,但查询没有被调用。
这是我的代码。
在 Controller 中:调用服务方法
List<UserProfile> gatheringMembers = userService.getUsersProfile(membersEmail);
这是调用自定义 mongoDB 查询的服务方法
public List<UserProfile> getUsersProfile(List<String> emails){
return userProfileRepository.findAllUsersByEmail(emails);
}
这是我的 mongoDB 存储库界面
public interface UserProfileRepository extends MongoRepository<UserProfile, String>, UserProfileRepositoryCustom {
public UserProfile findByEmail(String email);
}
这是界面
public interface UserProfileRepositoryCustom {
public List<UserProfile> findAllUsersByEmail(List<String> emails);
}
及其实现
public List<UserProfile> findAllUsersByEmail(List<String> emails) {
logger.info("getting all users profiles");
Query query = new Query(where("email").in(emails));
return mongoOperations.find(query, UserProfile.class);
}
当我运行代码时,我在 Controller 中得到空列表。 findByEmail
工作正常。任何人都可以帮我看看这段代码有什么问题吗?
问候,
最佳答案
经过更多搜索后,我找到了答案的解决方案,这不是代码问题,而是配置问题。对于那些面临同样问题的人,我将添加解决方案。添加repository-impl-postfix="CustomImpl"
后,它开始工作。
之前:
<mongo:repositories base-package="com.app.repositories"/>
之后:
<mongo:repositories base-package="com.app.repositories" repository-impl-postfix="CustomImpl" />
关于java - 使用 Spring 数据调用自定义 mongoDB 查询失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21778083/