spring - MongoDb Spring 存储库的 @Query 命名参数

标签 spring mongodb spring-data-mongodb spring-repositories

是否可以在 mongodb 存储库中为 @Query 方法使用命名参数,就像我们对 jpa 存储库所做的那样(http://docs.spring.io/spring-data/jpa/docs/1.4.3.RELEASE/reference/html/jpa.repositories.html 第 2.3.5 节)?

作为示例,我想使用以下代码:

@Query("{'store' : :store, 'app' : :app }")
List<T> findByStoreAndApp(@Param("store") String store, @Param("app") String app);

而不是:

@Query("{'store' : ?0, 'app' : ?1 }")
List<T> findByStoreAndApp(String store, String app);

最佳答案

这是可能的,尝试一下:

@Query("{'store' : :#{#store}, 'app' : :#{#app} }")
List<T> findByStoreAndApp(@Param("store") String store, @Param("app") String app);

@Query 中对 SpEL 表达式的支持是在 Spring Data MongoDB 1.8 中引入的。

https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#mongo.aggregation.projection.expressions

关于spring - MongoDb Spring 存储库的 @Query 命名参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38227385/

相关文章:

mongodb - Spring Data MongoDB 并发更新行为

spring - 使用 Spring Data MongoDB 指定分片集合

java - Spring 数据mongodb : How to define cursor limit in findAll method

java - 在@Transactional注释中设置默认事务管理器?

spring - 将 spring boot war 部署到 tomcat 中

javascript - 序列化 Javascript 代码

java - ZonedDateTime 与 MongoDB

java - 根上下文和调度程序 servlet 上下文到底是如何进入 Spring MVC Web 应用程序的?

java - JPA 实体必须进行单元测试,如何进行?

mongodb - 从子文档数组中删除数组元素