jpa query.getResultList () застрял, без ошибок - PullRequest
1 голос
/ 12 октября 2011

У меня странный случай, я написал простой код для запроса БД в JPA2.0

все выглядит хорошо, но когда код попадает в query.getResultList ();

он просто зависает и не отвечает, тогда сервер Glassfish получает около 20% процессорного времени

и тогда ничего не происходит, также он не генерирует никаких ошибок или журнала.

что не так?

Я использую Glassfish, EclipseLink, NetBeans

это мой код:

public List<?> getData(EntityManager em,Class entityClass){
Query query=em.createQuery("select entity from tblPromotions entity");
return query.getResultList();
}

спасибо заранее

Ответы [ 2 ]

0 голосов
/ 31 июля 2016

В моем случае После отладки в Hibernate я обнаружил, что запрос только что возвратил слишком много строк для его обработки. так что это решается установкой некоторого значения для Max Results:

query.setMaxResults(100);

Кстати: всегда в таких сценариях попробуйте отладку в рамках, и она может дать вам ответ:>

0 голосов
/ 12 октября 2011

Попробуйте отладить его, где он застрял? (kill или ctrl c, чтобы напечатать трассировку стека, или использовать отладчик)

Также включите регистрацию лучших.

Это может быть блокировка базы данных, так как это чтение, вы должны использовать некую сериализованную изоляцию транзакций, что, вероятно, является плохой идеей.

Как все объекты в таблице, это может занять очень много времени.

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