JEE - транзакция JTA никогда не откатывается при исключении - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть приложение JEE, которое работает в Tome Plume 7.1.0.Я пытаюсь откатить простую транзакцию, генерирующую RuntimeException, но изменения всегда вносятся в базу данных.При выполненииека*

Бин с сохранением состояния

@Named
@ViewScoped
public class EditarUsuarioBean {

    @Inject
    private UsuarioServicio servicio;

    public String eliminarUsuarios(){
        try{
            servicio.eliminarUsuarios()
        }
        catch(Exception ex){}
    }

Бин без сохранения состояния

@Stateless
public class UsuarioServicio {

    @PersistenceContext(unitName = "XinsPU")
    private EntityManager em;


    public List<Usuario> listado() throws Exception{
        Query consulta = em.createQuery("SELECT u FROM Usuario u");
        return consulta.getResultList();
    }

    //Never rollback transaction. With or without @Transactional anotation
    //@Transactional( rollbackOn={MiExcepcion.class } )
    public boolean eliminarUsuarios() throws Excepcion{                        
        List<Usuario> listaUsuarios = listado();                
        for(Usuario u : listaUsuarios){
            em.remove(u);
        }                
        em.flush();     

        throw new MiExcepcion();

        return true;
    }

Исключение

@ApplicationException(rollback=true)
public class MiExcepcion extends RuntimeException {
...