Я использую JPA с Spring Boot в Kotlin / Java. Я пытаюсь найти правильный и эффективный способ сделать findBy ... В поле ввода OrderBy.
У меня есть список идентификаторов, которые я хочу найти, и я хочу упорядоченный вывод с тем же порядком. Это то, что JPA позволяет вам:
@Repository
interface PhotoRepository : JpaRepository<Photo, String>{
// Which is the same as this query
@Query("SELECT p FROM Photo p where p.id in :var1")
fun findAllByIdIn(var1: List<String>, pageable: Pageable): List<Photo>
}
Было бы замечательно, если JPA позволяет вам делать что-то вроде этого:
@Repository
interface PhotoRepository : JpaRepository<Photo, String>{
@Query("SELECT p FROM Photo p where p.id in :var1 order by :var1")
fun findAllByIdInOrderByvar1(var1: List<String>, pageable: Pageable): List<Photo>
}
Размер списка идентификаторов составляет от 500 до 1500 наименований. В базе данных много записей, и идея выбрать все записи неосуществима
Предполагаемое решение состоит в том, чтобы сделать findAllByIdIn
и затем сопоставить записи с идентификаторами в списке, что, я думаю, не является правильным решением, есть дополнительные операции. Идея изменения базы данных также рассматривается.