【发布时间】:2020-11-04 21:41:20
【问题描述】:
我正在使用带有 spring-data-mongodb 的最新 Spring Boot,我试图将带有 @Param 的存储库方法参数绑定到 @Query 注释中的查询。我已经看到了几个使用 JPA 的 spring 数据示例,但对于 spring-data-mongodb 来说并不多。这是我尝试过的:
@Query(value = "{ 'bar': :param1 }")
FooModel getFooBySomeParam(@Param("param1") final String p1);
我目前不在工作,所以我没有具体的错误,但错误是在解析查询字符串时出现的。它正在寻找一个值,但找到了一个冒号。我假设我错误地指定了命名参数,因此当它在参数名称之前遇到前导冒号时解析失败,但我还没有看到如何使用 mongodb 存储库以不同的方式执行此操作。
【问题讨论】:
-
我认为它可能是这样的:@Query("{ bar: :#{#param1} }")
-
是
@Query(value = "{ 'bar': ?0}") -
@Harshit,请重新阅读问题。我知道如何执行位置参数,但我正在尝试让绑定的命名参数起作用。
-
抱歉造成误会。是的,你是对的,它与
@Query("{ bar: :#{#param1} }")一起使用,被称为 SpEL