【问题标题】:Generated mongodb query for findAllOrderByFieldDesc in Kotlin在 Kotlin 中为 findAllOrderByFieldDesc 生成 mongodb 查询
【发布时间】:2021-07-17 14:16:15
【问题描述】:

我正在尝试为我的实体构建简单的自动生成查询,以按降序对某个数字字段进行排序,如下所示:

@Document(collection = "my_coll")
class MyEntity (

    @Id
    val id: ObjectId = ObjectId.get(),

    val someField: Number

)

...

interface MyEntityRepository : MongoRepository<MyEntity, String> {
//this is failing query I try to build
    fun findAllOrderbySomeFieldDesc(): List<MyEntity>
}

不幸的是,我得到了:

org.springframework.data.mapping.PropertyReferenceException: No property findAllOrderbySomeFieldDesc found for type MyEntity

我怎样才能做到这一点?

更新:

根据this,以下功能应该可以工作

fun findByOrderBySomeFieldDesc(): List<MyEntity>
//unfortunately it fails again for me with
//No property findAllOrderbySomeFieldDesc found for type MyEntity

我目前的工作解决方案是use sorting with Sort parameter

myEntityRepository.findAll(Sort.by(Sort.Direction.DESC, "someField"))

问题仍然是如何使用spring自动生成方法实现相同的功能?

【问题讨论】:

  • 尝试将方法命名为 findAllSortBySomeField
  • Invalid parameter index! You seem to have declared too little query method parameters!
  • 方法findAllOrderbySomeFieldDesc()的功能是什么?
  • 所以在 All 和 Order 之间应该有一个“By”。所以public List&lt;MyEntity&gt; findAllByOrderBySomeFieldAsc();public List&lt;MyEntity&gt; findAllBySortBySomeFieldAsc(); 应该可以工作
  • there should be a 'By' between All and Order 解决了它谢谢@yevgeniy.batulin! @prasad_ 很抱歉在我的描述中混合了 ASC 和 DESC,我修复了这个问题。 findAllByOrderBySomeFieldAsc 就像一个魅力。

标签: mongodb kotlin spring-data


【解决方案1】:

根据Officials Docs,您的查询方法主题关键字应以“By”结尾,因此方法名称应为findAllByOrderBySomeFieldDesc()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-07
    • 1970-01-01
    • 2018-07-29
    • 2017-04-15
    • 2020-03-02
    • 2015-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多