Мне нужно вывести из БД только один результат. Как я могу сделать это с помощью JPA?
Select top 1 * from table
Я пробовал
"выберите t из таблицы t"
query.setMaxResults(1);
query.getSingleResult();
но не работает. Любые другие идеи?
Ответ 1
Попробуйте это
String sql = "SELECT t FROM table t";
Query query = em.createQuery(sql);
query.setFirstResult(firstPosition);
query.setMaxResults(numberOfRecords);
List result = query.getResultList();
Он должен работать
UPDATE *
Вы также можете попробовать это
query.setMaxResults(1).getResultList();
Ответ 2
Чтобы использовать getSingleResult в TypedQuery, вы можете использовать
query.setFirstResult(0);
query.setMaxResults(1);
result = query.getSingleResult();
Ответ 3
Самый простой способ - использовать @Query с опцией NativeQuery, как показано ниже:
@Query(value="SELECT 1 * FROM table ORDER BY anyField DESC LIMIT 1", nativeQuery = true)
Ответ 4
Используйте собственный SQL-запрос, указав @NamedNativeQuery аннотацию класса сущности или используя EntityManager.createNativeQuery. Вам нужно будет указать тип ResultSet с помощью соответствующего класса или использовать сопоставление ResultSet.