带有Kotlin错误的Spring Data Mongo:"必须是编译时常量"

时间:2018-02-11 13:21:10

标签: mongodb kotlin spring-data

我正在尝试在ReactiveCrudRepository中使用 Kotlin 创建一个Spring Data Mongo查询:

@Query("{ 'contacts': { $in: ?0 } }")
fun isInContacts(aContact: String): Flux<User>

但是,我收到编译错误:

"An annotation parameter must be a compile-time constant"
"Keyword cannot be used as a reference"

如何解决这个问题?

是否与$有关。由于它在Strings中用于引用变量?

1 个答案:

答案 0 :(得分:1)

  

是否与$有关。由于它在Strings中用于引用变量?

是的,确实如此,in是Kotlin中的保留字,这就是您收到错误Keyword cannot be used as a reference的原因。你必须逃脱美元符号以消除其特殊含义:

@Query("{ 'contacts': { \$in: ?0 } }")