Boa tarde Pessoal!!
Ppodriam me ajudar com o Rolback da aula 5? ele retorna a exception certinha mas o banco eh atualizado e a interface web tbm!!
Vejam anotacoes "conforme aula 4" e "... aula 5".
Muito grato pela ajuda!!
package br.com.caelum.livraria.dao;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.Stateless;
import javax.ejb.TransactionManagement;
import javax.ejb.TransactionManagementType;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.transaction.UserTransaction;
import br.com.caelum.livraria.modelo.Autor;
@Stateless
@TransactionManagement(TransactionManagementType.BEAN) // opcional * Conforme aula 4
public class AutorDao {
@PersistenceContext
private EntityManager manager;
@Inject UserTransaction tx;
@PostConstruct
void aposCriacao() {
System.out.println("[INFO] AutorDao foi criado.");
}
//@TransactionAttribute(TransactionAttributeType.REQUIRED) - // conforme aula 4
public void salva(Autor autor) {
System.out.println("salvando autor " + autor.getNome());
try {
tx.begin();
manager.persist(autor);
tx.commit();
}catch(Exception e) {
e.printStackTrace();
}
System.out.println("salvou autor " + autor.getNome());
}
public List<Autor> todosAutores() {
return manager.createQuery("select a from Autor a", Autor.class).getResultList();
}
public Autor buscaPelaId(Integer autorId) {
Autor autor = this.manager.find(Autor.class, autorId);
return autor;
}
}
,
package br.com.caelum.livraria.bean;
import javax.ejb.ApplicationException;
@ApplicationException(rollback=true)
public class LivrariaException extends RuntimeException {
}
```,
```package br.com.caelum.livraria.bean;
import java.util.List;
import javax.ejb.Stateless;
import javax.inject.Inject;
import br.com.caelum.livraria.dao.AutorDao;
import br.com.caelum.livraria.modelo.Autor;
@Stateless
public class AutorService {
@Inject
AutorDao dao;
//required
public void adiciona(Autor autor) {
//maisregras aqui
dao.salva(autor);
//uma regra de negovio deu errada *simulacao
throw new LivrariaException(); // conforme aula 5
}
public List<Autor> todosAutores() {
// TODO Auto-generated method stub
return dao.todosAutores();
}
}