0 Replies Latest reply: Jan 16, 2007 12:18 AM by Maciej Andreas Bednarz RSS

Transaction over multiple entitity beans

Maciej Andreas Bednarz Newbie

Hi all !

I have read also the Oreilly's book, but can not figure out how construct the following:

I have multiple Entities (Entity1, Entity2, ..., EntityN) and have put on top of each entity a session bean (Entity1Dao, Entity2Dao, ..., EntityNDao). What I want to do is to hadle an update of entity1, entity2, entityn within one single transaction.

Any exception during entity management should mark the just running transaction for rollback, so when an exception occured within Entity2Dao no data from Entity1 should persist. After the command flow has end, I would like to commit all changes (transaction commit).

Is there any public example or some nice lad who can give me any source code how to manage this? If possible, I would like not to use stateful beans and. The base code for my entity DAOs is like this:

public abstract class GenericDaoImpl<T extends GenericDatabaseObject, PK extends Serializable> implements GenericDao<T, PK> {

 /** EntityManager */
 @PersistenceContext(type=PersistenceContextType.TRANSACTION)
 EntityManager manager;

 @TransactionAttribute(TransactionAttributeType.REQUIRED )
 public void save(T instance) {
 System.out.println(manager);
 manager.persist(instance);
 }

 @TransactionAttribute(TransactionAttributeType.REQUIRED )
 public void delete(T persistentObject) {
 manager.remove(persistentObject);
 }


and the sub class for a specific session bean:

@Stateless(name = "AddressDao")
@Remote(AddressDao.class)
@Local(AddressDao.class)
public class AddressDaoImpl extends GenericDaoImpl<Address, Long> implements AddressDao {

}


I am using the latest JBOSS 4.0.5 and EJB3R9 and PersistenceContextType.TRANSACTION for the EntityManager.

Thank you very much,

Maciej A. Bednarz