How to rollback transaction in conversation bean managed by container? I use Seam managed transaction because it helps me with lazyInitializationException, so I can't manually manage transactions.
1)Simply throwing exception cause displaying debug page
2)throwing exception from method annotated with
@TransactionAttribute(value = REQUIRES_NEW) @Transactional(TransactionPropagationType.REQUIRED)
and catching it in another method doesn't rollback transaction at all.
2)
@Resource protected SessionContext sessionContext; sessionContext.setRollbackOnly
cause something strange with conversation - while transaction rollbacks, application state is incosistent.
3)Any try with:
(PersistentContext/entitiManager).getTransaction().rollback();
cause
Caused by: javax.ejb.EJBTransactionRolledbackException: JTA EntityManager cannot access a transactions
which is logical.
4)I can do:
@Begin(flushMode=FlushModeType.MANUAL)
but there is no entitymanager.rollback or sth similair, so how to rollback?
Is it enough not to entityManager.flush()? Is it so simply?