Поддерживают ли @Service JBoss EJB транзакции?

Кто-нибудь знает, поддерживает ли JBoss @Service EJB транзакции? Я хотел бы работать с EntityManager, но получаю ошибки «EntityManager должен использоваться в транзакции». Явное указание транзакций, управляемых контейнером, и ОБЯЗАТЕЛЬНЫХ транзакций в EJB не имеет значения.

Спасибо.

Обновить

Вот код, который я использую для получения EntityManager:

   @PersistenceContext(unitName = "MyPersistenceContextName")
   private EntityManager m_entityManager;

И вот код, который не удался:

  m_entityManager.persist( objectToSave);
  m_entityManager.flush();

Не удалось на первой линии.


person Jon Onstott    schedule 20.01.2012    source источник
comment
Теоретически аннотация @Service поддерживает локальные и удаленные интерфейсы, управляемые контейнером, поэтому она будет иметь поддержку транзакций. Пожалуйста, опубликуйте свой код.   -  person Gonzalo Garcia Lasurtegui    schedule 21.01.2012
comment
Просто чтобы быть уверенным, мы говорим о org.jboss.annotation.ejb.Service?   -  person Philippe Marschall    schedule 25.04.2012


Ответы (1)


Применяя аннотацию @Service, он установит bean-компонент на сервер MBean с определенным именем, который работает на другом загрузчике классов, а ваше приложение - на другом. Следовательно, это может быть причиной того, что MBean не поддерживает транзакцию и не может получить доступ к контексту.

Вместо взаимодействия с базой данных через MBean вы можете делегировать его другому компоненту EJB, к которому можно получить доступ через поиск JNDI.

person Nayan Wadekar    schedule 03.06.2012