"Transakce je totiž automaticky zrušena, jakmile business metoda vyvolá výjimku, kterou nezachytí."
Toto platí pouze u runtime výjimek. Jinak se musí explicitně zavolat http://java.sun.com/javaee/5/docs/api/javax/ejb/EJBContext.html#setRollbackOnly()
Pozor na to! Ať se pak zbytečně nedivíte, že "v tý databázi je nějakej bordel" :-)
Ak si dobre pamatam, tak v EJB specifikacii sa rozlisuju dva typy vynimiek 1. systemove a 2. aplikacne.
Pri systemovych vynimkach sa transakcia automaticky rollbackuje kontajnerom pri kontajnerom manazovanych transakciach v pripade, ze nieje zachytena.
Je pravda, ze runtime vynimky su implicitne systemove, ale nieje to pravidlo, tj. na zmenu staci jedna anotacia alebo pripadne zapis v xml deskriptore aplikacie.