Вот способ достижения этого.
<?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>
Первый элемент для обводки и второй для сплошного фона. Скрытие левой и правой границ.
Обнаружено недостающее звено.
Это действительно была недостающая транзакция, но решение заключалось в том, чтобы использовать EntityManager для ее обработки, а добавить введенную UserTransaction.
@Resource
UserTransaction ut;
...
public void delete(E entity)
{
ut.begin();
em.remove(em.merge(entity));
ut.commit();
}
Спасибо всем предложениям, которые каким-то образом более 100 углов привели к этому решению.
Вы уверены, что аннотировали свой компонент с помощью @Stateless или зарегистрируете его с помощью xml?
Попробуйте добавить аннотацию транзакции к своему коду, это может вам помочь:
@TransactionAttribute(REQUIRED)
public void delete(E entity)
{
em.remove(em.merge(entity));
}
Но это кажется странным , потому что это значение по умолчанию, если вы не устанавливаете его явно.
Знаю, это старый вопрос, но на всякий случай, если кто-нибудь наткнется на это, как я.
Попробуй
em.joinTransaction();
em.remove(bean);
em.flush();
Это то, что мы используем во всех наших @ Ненавистных бобах.
Если вы используете Seam, вы также можете использовать @Transactional(TransactionPropagationType.REQUIRED)
annotation.