То, почему в JPA EntityManager запросы бросают NoResultException, но находят, не делает?

Используйте php_sapi_name() функция.

if (php_sapi_name() == "cli") {
    // In cli-mode
} else {
    // Not in cli-mode
}

Вот некоторые соответствующие примечания из документов:

php_sapi_name — Возвращает тип интерфейса между веб-сервером и PHP

, Хотя не исчерпывающий, возможные возвращаемые значения включают aolserver, апача, apache2filter, apache2handler, caudium, cgi (до PHP 5.3), cgi-fcgi, cli, cli-сервер, непрерывность, встраивают, isapi, litespeed, milter, nsapi, phttpd, pi3web, roxen, thttpd, смокинг и webjames.

В PHP> = 4.2.0, существует также предопределенная константа, PHP_SAPI, который имеет то же значение как php_sapi_name().

16
задан 16 October 2009 в 18:12
поделиться

1 ответ

Когда вы выполняете поиск, jpa будет использовать первичный ключ для поиска объекта сущности, часто используя кеш второго уровня, и это обычно намного быстрее, чем createQuery и getSingleResult.

Вы либо получаете null или объект, возвращенный из поиска. Когда вы выполняете createQuery, и создается экземпляр объекта Query. Если вы выполните getResultList, он не вызовет исключения NoResultException, только если вы выполните getSingleResult, он выдаст это исключение. Если вы выполните getResultList и ничего не будет найдено, будет возвращено значение null.

8
ответ дан 30 November 2019 в 17:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: