Синтаксис для TOP 3 широко варьируется от базы данных к базе данных.
К сожалению, вам нужно использовать эти конструкции для лучшей производительности.
Здесь помогают такие библиотеки, как Hibernate, поскольку они могут переводить общий API на различные диалекты SQL.
Поскольку вы спрашиваете о Java, можно просто ВЫБЕРИТЬ все из базы данных (с помощью ORDER BY), но получить только первые три строки. В зависимости от того, как должен выполняться запрос, это может быть достаточно хорошим (особенно если сортировка в базе данных не должна выполняться благодаря соответствующим индексам, например, при сортировке по полям первичного ключа).
Но в целом вы хотите использовать решение SQL.