在 Spring Data Mongo 中使用 @Collations 似乎不起作用

问题描述 投票:0回答:1

我正在使用 Spring data mongo 并希望对各种查询使用排序规则。排序规则需要与默认存储库方法以及自定义查询一起使用。

根据参考文档初始功能描述

以下应该有效:

@Collation(value = "...")
data class SampleDocument(
    @field:MongoId
    var id: String? = null,
    val value: String
)

interface RepositoryWithCollationInQuery: CrudRepository<SampleDocument, String> {
    @Collation(value = "...")
    @Query(
        value = "{}",
        sort = """{ "value":  1}""",
    )
    fun findAllCollationInAnnotation(): List<SampleDocument>
}

但是不评估排序规则。仅当直接将其添加到

@Query
时才会对其进行评估。

版本:

  • 春季启动:3.1.5
  • Spring Data Mongo:4.1.5
  • MongoDB:6(4 个没有显示差异)

可以在此处找到包含预期代码(和失败的测试)的示例项目:https://github.com/dirkbolte/mongodb_collation_test

尝试了以下方法:

  • @Collation
    添加到数据类(失败)
  • @Collation
    添加到存储库界面(失败)
  • 在查询方法中添加
    @Collation
    (失败)
  • collation=...
    注释上指定
    @Query
    (有效)

我希望将

@Collation
注释添加到存储库和/或文档中将允许所有存储库方法都使用它,特别是在使用
findAll(pageable)
时。当所有内容都需要
@Query
时,我必须手动且显式地指定每个查询。

mongodb spring-boot kotlin spring-data
1个回答
0
投票

回答我自己:问题在 Spring Data Mongo 中被接受为 bug

© www.soinside.com 2019 - 2024. All rights reserved.