Ola pessoal, estou tendo um problema com o rollback de uma transação CMT. Ao que parece ele executa o rollback sem da nenhum tipo de exception e mesmo assim ele continua a persistir a transação.
Não sei se pode ser isso, mas estou usando o eclipse e não estou muito familiarizado com ele ainda. Pode ser algum problema na construção do projeto ou coisa do tipo?
Segue o código.
package sessionbeans;
import java.util.List;
import javax.annotation.Resource;
import javax.ejb.SessionContext;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;
import entidades.Produto;
@Stateless
public class ProdutoRepositorio {
@PersistenceContext
private EntityManager entityManager;
@Resource
private SessionContext context;
public void adiciona(Produto produto) {
this.entityManager.persist(produto);
this.context.setRollbackOnly(); //<<<<<< logo após persistir ele da o rollback
}
public List<Produto> getProdutos() {
TypedQuery<Produto> query = this.entityManager.createQuery(
"select x from Produto x", Produto.class);
return query.getResultList();
}
}