EntityManager бросает TransactionRequiredException на слияние () в бобе JBoss JSF

Вот способ достижения этого.

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item>
            <shape android:shape="rectangle">
                <stroke
                    android:width="1dp"
                    android:color="@color/grey_coaching_text" />
            </shape>
        </item>

        <item
            android:bottom="1dp"
            android:top="1dp">
            <shape android:shape="rectangle">
                <solid android:color="@color/white" />
            </shape>
        </item>
    </layer-list>

Первый элемент для обводки и второй для сплошного фона. Скрытие левой и правой границ.

7
задан Kosi2801 5 July 2009 в 21:30
поделиться

3 ответа

Обнаружено недостающее звено.

Это действительно была недостающая транзакция, но решение заключалось в том, чтобы использовать EntityManager для ее обработки, а добавить введенную UserTransaction.

@Resource
UserTransaction ut;
...
public void delete(E entity)
{
        ut.begin();
        em.remove(em.merge(entity));
        ut.commit();
}

Спасибо всем предложениям, которые каким-то образом более 100 углов привели к этому решению.

8
ответ дан 6 December 2019 в 23:12
поделиться

Вы уверены, что аннотировали свой компонент с помощью @Stateless или зарегистрируете его с помощью xml?

Попробуйте добавить аннотацию транзакции к своему коду, это может вам помочь:

@TransactionAttribute(REQUIRED)
public void delete(E entity)
{
        em.remove(em.merge(entity));
}

Но это кажется странным , потому что это значение по умолчанию, если вы не устанавливаете его явно.

1
ответ дан 6 December 2019 в 23:12
поделиться

Знаю, это старый вопрос, но на всякий случай, если кто-нибудь наткнется на это, как я.

Попробуй

em.joinTransaction();
em.remove(bean);
em.flush();

Это то, что мы используем во всех наших @ Ненавистных бобах.

Если вы используете Seam, вы также можете использовать @Transactional(TransactionPropagationType.REQUIRED) annotation.

2
ответ дан 6 December 2019 в 23:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: