Выберите лучший результат 1, используя JPA - PullRequest
39 голосов
/ 15 июля 2011

Мне нужно вывести из БД только один единственный результат.Как я могу сделать это с JPA?

Select top 1 * from table

Я пытался

"выбрать t из таблицы t"

query.setMaxResults(1);

query.getSingleResult();

но не сделалт работа.Есть еще идеи?

Ответы [ 4 ]

52 голосов
/ 15 июля 2011

Попробуйте вот так

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();
20 голосов
/ 24 сентября 2013

Чтобы использовать getSingleResult для TypedQuery, вы можете использовать

query.setFirstResult(0);
query.setMaxResults(1);
result = query.getSingleResult();
5 голосов
/ 04 декабря 2015

Самый простой способ - использовать @ Query with NativeQuery, параметр , как показано ниже:

@Query(value="SELECT 1 * FROM table ORDER BY anyField DESC LIMIT 1", nativeQuery = true)
2 голосов
/ 15 июля 2011

Используйте собственный запрос SQL, указав аннотацию @NamedNativeQuery в классе сущности или используя метод EntityManager.createNativeQuery. Вам нужно будет указать тип ResultSet, используя соответствующий класс, или использовать сопоставление ResultSet.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...