У меня есть метод (скажем, метод A), где я сохраняю объект в db; этот метод находится внутри EJB One. В рамках метода A после слияния объекта я вызываю другой метод (скажем, метод B), который должен работать с данными, сохраненными в методе A. Метод B находится внутри EJB Two. Оба EJB являются безгражданскими и в одном ухе, поэтому в EJB One я использую локальный интерфейс EJB Two. Оба имеют:Контекст сохранения между безстоящими EJB
@PersistenceContext(unitName = "emDevices")
private EntityManager em;
Когда метод Б считывает данные из БД не может найти новые данные, сохраненные ранее в методе А. я пытался использовать @TransactionAttribute (TransactionAttributeType.SUPPORTS) без какого-либо успеха. Кто-нибудь знает, почему метод B не может видеть данные, сохраненные методом A, даже если они используют один и тот же контекст персистентности?
Я использую спящий режим 4.0.0 и WebLogic 12.1.3 (J2EE6)
Это должно дать вам приличное представление о том, как работают транзакции с bean-компонентами http://docs.oracle.com/javaee/5/tutorial/doc/bncij.html –
Когда вы говорите «после слияния», вы на самом деле вызываете слияние(). Слияние и упорство, вероятно, будут делать то же самое в этом контексте, но по моему опыту многие разработчики не знают, как правильно использовать слияние. –