Доступ к сеансу весеннего ввода EntityManager - PullRequest
1 голос
/ 30 декабря 2011

В моем приложении я ввел EntityManager через Spring.Как я могу получить доступ к сеансу EntityManager?Когда я пытался сделать это:

Session session = ((EntityManagerImpl) entityManager).getActiveSession();

я получаю исключение приведения, поскольку Spring вводит прокси для entityManager.Пожалуйста, дайте мне знать, как это сделать.

Примечание: я использую Eclipselink JPA.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 30 декабря 2011

Вы можете использовать unwrap, как предложено @JBNizet. Однако для этого необходимо использовать API, совместимый с JPA 2.0. Однако, если вы вынуждены использовать JPA 1.0, попробуйте класс JpaHelper . Его метод getEntityManager можно использовать для входа в активный сеанс.

JpaHelper.getEntityManager(entityManager).getActiveSession()
0 голосов
/ 30 декабря 2011

Вы должны использовать метод unwrap EntityManager для доступа к реализации, специфичной для провайдера.

PS: Я не нашел ни одного EntityManagerImpl в javadoc EclipseLink.Где это?

...