java - Spring Data Repositiories - 为每个查询添加特定参数

标签 java spring mongodb spring-data spring-data-mongodb

我有几个扩展 org.springframework.data.mongodb.repository.MongoRepository 的存储库。我添加了一些通过不同参数搜索实体的方法,但是,在任何搜索中,我只想搜索将 active 字段设置为 true 的实体(已选择用于标记为 active=false 而不是删除)。例如,两个示例存储库如下所示:

interface XxRepository extends MongoRepository<Xx, String> {

    Optional<Xx> findOneByNameIgnoreCaseAndActiveTrue(String name)

    Page<Xx> findByActiveTrue(Pageable pageable)

    Xx findOneByIdAndActiveTrue(String id)

}

interface YyRepository extends MongoRepository<Yy, String> {

    Optional<Yy> findOneByEmailAndActiveTrue(String email)
}

有什么方法可以让我不向每个方法添加 byActiveTrue\andActiveTrue 并将其设置在一个地方的某个位置以用于所有查询?

最佳答案

请试试这个。无需提供实现。将“Activity ”和“电子邮件”更改为您的数据库列名称。

interface YyRepository extends MongoRepository<Yy, String> {
    @Query(value = "{ 'active' : { '$eq': true }, 'email' : ?0 }")
    Optional<Yy> findOneByEmailAndActiveTrue(@Param("email") String email)
}

关于java - Spring Data Repositiories - 为每个查询添加特定参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43411368/

相关文章:

java - 为什么PatriciaTrie中无法访问 `floorEntry`等方法?

java - 无法压缩通量并返回空值。我们如何丢弃传递到通量中的事件对?

java - 为什么这个线程在 Spring 中继续运行?

node.js - Nodejs 在特定时间后删除上传的文件

windows - Windows/Docker/外部安装

java - 分离如何在持久化实体的事务方法中工作

java - 为什么要使用实体管理器?

java - Spring 测试主线程陷入应用程序的无限循环

java - 按计划进行缓存驱逐后,Spring 缓存未被使用

MongoDB 断言错误