Я использую Spring Data JPA и хочу получить последнюю запись из таблицы Settings.
У меня есть SettingsRepository со стандартными методами, реализованными Spring Data. Как написать метод (или запрос) для извлечения последней строки из данной таблицы?
interface SettingsRepository extends JpaRepository<Settings, Long> {
// ?
}
Таблица заказов перевернута по идентификатору, если вы используете последовательность, или creation_date, если вы используете аудит, тогда ограничьте 1 записью.
Я хотел бы сделать что-то вроде этого: "выберите * из порядка настроек по идентификатору desc limit 1"




Специальной функции для получения последней записи нет.
Однако вы можете выполнить порядок в обратном порядке (например, DESC по идентификатору - при условии, что идентификатор есть) и получить первую запись.
Обновлено: согласно предложению @ MountainKing в комментариях ниже, вы можете использовать findTopByOrderByIdDesc()
Я знаю, как это сделать в SQL, но как это сделать с помощью Spring Data?
как вы имеете в виду, что для этого нет специальной функции? Вы можете использовать findTop OrderByDesc ()
@MountainKing Думаю, я мог бы сформулировать это точнее. Я имел в виду следующее: нет функции, которая могла бы напрямую получить последний результат без упорядочения по убыванию (о чем я знаю).
Спасибо @MountainKing, это то, что я искал
Вы должны использовать findTopByOrderByIdDesc()
Это называется именованным запросом, вы можете проверить документация
Я бы хотел увидеть результат, когда 50 потоков вставляются в одну и ту же таблицу ...
@madhairsilence - это именованный запрос Spring Boot. Проверить документы ... docs.spring.io/spring-data/jpa/docs/current/reference/html/…
как ни странно, очень важно назвать метод так, как указано выше, несмотря на то, что он говорит findTopBy ... и затем не указывает, что его искать, и сразу переходит к OrderBy, а затем имеет имя поля и, наконец, заканчивается Desc; это способ.
что для вас значит «последний»?