Well, When you use Entitiy beans you go through ejbLoad, business methods and ejbStore. etc That means that you should start your transaction in ejbLoad and end it in ejbStore. However, you don't have any control over calling ejbLoad and ejbStore, so you can't guarantee that they would ever be in the same transaction. In fact your transaction might never commit. You can use declarative transactions, though. Just remember not to force a new transaction for each method call, that would degrade your performance.