почему EntityManager.find () в Hibernate выдает исключение EntityNotFoundException? - PullRequest
4 голосов
/ 09 марта 2012

JPA 2.0 javadoc (и, вероятно, спецификации) говорят, что EntityManager.find () возвращает ноль, когда сущность не найдена:

найденный экземпляр сущности или нуль, еслисущность не существует

Тем не менее, имплант Hibernate выдает исключение EntityNotFoundException.Зачем?Наблюдается с использованием Hibernate 3.6.8 и hibernate-jpa-2.0-api v1.0.1. Финал

javax.persistence.EntityNotFoundException: невозможно найти bar.foo.Entity с идентификатором144487 в org.hibernate.ejb.Ejb3Configuration $ Ejb3EntityNotFoundDelegate.handleEntityNotFound (Ejb3Configuration.java:137) в org.hibernate.event.def.DefaultLoadEventListener.ventLventListener.RuLeaderLeaderEgproxyOrLoad (DefaultLoadEventListener.java:277) в org.hibernate.event.def.DefaultLoadEventListener.onLoad (DefaultLoadEventListener.java:152) в org.hibernate.impl.SessionImpl.ireLoad (org): atg.SessionImpl.get (SessionImpl.java:1005) в org.hibernate.impl.SessionImpl.get (SessionImpl.java:998) в org.hibernate.ejb.AbstractEntityManagerImpl.find (AbstractEntityManagerImpl.javag: .h).ejb.AbstractEntityManagerImpl.find (AbstractEntityManagerImpl.java:754)

1 Ответ

4 голосов
/ 25 апреля 2012

У меня была такая же проблема при использовании Hibernate 4.1.x и я хотел предоставить указатель на кого-то, кто испытывает ту же проблему. В моем случае, как упоминалось в предыдущих комментариях, это был не сам объект, а скорее другой объект, на который ссылается загруженный объект. Странно было то, что эта сущность, на которую ссылаются, существовала, но к ней обращались в другой транзакции / сеансе, и это имело значение. Поскольку я писал тест с использованием Spring, простое изменение перемещения @transactional с уровня класса на метод сломало все это.

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