gpt4 book ai didi

spring - 如何在 MongoRepository 上创建计数查询

转载 作者:可可西里 更新时间:2023-11-01 10:44:41 25 4
gpt4 key购买 nike

我正在创建一个 MongoRepository 并且需要创建一个计数查询。有人可以提供一个示例,说明通过 SpringData MongoDB MongoRepository 工具执行此操作的最佳方法是什么吗?我能够找到的所有示例都返回一个 List 但不重要。

这是我正在尝试做的(显然它不起作用):

public interface SchoolRepository extends MongoRepository<School, String> {
@Query("db.school.count({studentStatus: ?0});")
int getCountOfStudents(int studentStatus);
}

谢谢。-AP_

最佳答案

我在尝试做类似的事情时发现了这个问题。不幸的是,考虑到我在 org.springframework.data.repository.query.parser.PartTree 中看到的情况:

private static final Pattern PREFIX_TEMPLATE = Pattern.compile("^(find|read|get)(\\p{Upper}.*?)??By");

它似乎不受支持。

相反,我们可以通过创建一个新接口(interface)和一个实现它的类来向存储库添加自定义行为(请参阅 reference manual section 1.4.1)。

public interface SchoolRepository extends CrudRepository<School, String>, SchoolRepositoryCustom {
// find... read... get...
}

public interface SchoolRepositoryCustom {
int getCountOfStudents(int studentStatus);
}

@Service
public class SchoolRepositoryImpl implements SchoolRepositoryCustom {
@Autowired
private SchoolRepository schoolRepository;

public int getCountOfStudents(int studentStatus) {
// ...
}
}

请注意,该类名为 SchoolRepositoryImpl,而不是 SchoolRepositoryCustomImpl。

关于spring - 如何在 MongoRepository 上创建计数查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10254710/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com