我正在 Spring Boot 2 和 Croud Repository 上开发后端应用程序。
我有一个名为 MoneyTransfer 的表,表中有名为 customerId 和firmId 的列。
我需要获得客户转账的最后 10 家不同的公司。
目前,我让用户获得所有汇款并对其进行过滤。但是,这种方法没有意义,因为我让数据库中的所有元素都找到最后 10 个。它可能会导致性能问题。
fun getList(customerId: String) {
var list = mutableListOf<MoneyTransfer>()
moneyTransferRepository.findByCustomerId(customerId).forEach {
if (list.find(elem -> it.firmId == elem.firmId) == null) {
list.add(it)
}
if (list.size == 10) {
return@forEach
}
}
return list
}
您是否有任何有效的解决方案让我在不获取所有数据库行的情况下获得最后 10 个不同的公司 ID?