【发布时间】: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<MyEntity> findAllByOrderBySomeFieldAsc();或public List<MyEntity> findAllBySortBySomeFieldAsc();应该可以工作 -
there should be a 'By' between All and Order解决了它谢谢@yevgeniy.batulin! @prasad_ 很抱歉在我的描述中混合了 ASC 和 DESC,我修复了这个问题。findAllByOrderBySomeFieldAsc就像一个魅力。
标签: mongodb kotlin spring-data