Выпуск TomEE 4 JPA - PullRequest
       24

Выпуск TomEE 4 JPA

2 голосов
/ 09 декабря 2011

Я пробую простой пример JPA на TomEE 4.0.0, и я не могу заставить работать PersistenceContextType.EXTENDED

Если я оставлю свой сессионный компонент без сохранения состояния и оставлю PersistenceContextType, тогда он будет работать нормально

@PersistenceContext(unitName = "xxx" )
private EntityManager entityManager;

Если я оставлю свой сессионный компонент без сохранения состояния и затем попытаюсь использовать это

@PersistenceContext(unitName = "xxx", type = PersistenceContextType.EXTENDED))
private EntityManager entityManager;

выдает ошибку при развертывании, что совершенно нормально и соответствует ожиданиям.

Однако теперь, когда я делаю свой бин как @Stateful, он также выдает мне ошибку

Managed ejbs are not capable of using EntityManagers with EXTENTED persistence.  Convert your bean to a Stateful ejb or update the "java:comp/env/com.testwebservice.TestJPAService/entityManager" PersistenceContext reference to PersistenceContextType.TRANSACTION.

Может кто-нибудь, пожалуйста, помогите, я действительно запутался в этом

1 Ответ

0 голосов
/ 09 февраля 2012

@Stateful РАСШИРЕННЫЕ контексты персистентности тестируются множеством способов в сборке TomEE, а также в TCK Java EE.

Скорее всего, это совсем другое. Мы делаем все возможное, чтобы предупредить вас, когда вы делаете очевидные ошибки, поскольку вы отмечаете неправильную комбинацию @Stateless с PersistenceContextType.EXTENDED

Глядя на имя JNDI, которое содержит com.testwebservice.TestJPAService и учитывая тот факт, что оно было @Stateless до того, как оно было изменено на @Stateful, я предполагаю, что этот bean-компонент также является @WebService, что недопустимо. @Stateful бобы не могут быть @WebService бобами. Без надлежащей проверки, чтобы предотвратить эту ошибку, я предполагаю, что бин фактически развертывается дважды; один раз как @Stateful боб и один раз как pojo @WebService. Вызывает ошибку веб-сервис pojo.

В случае, если это ошибка, я подал JIRA для нас, чтобы явно проверить это условие .

...