Não entendi porque da erro na hora de remove um objeto
???
alguem pode me dar um help porque não deleta o objeto…
abs
Erro=java.lang.IllegalArgumentException: Entity must be managed to call remove: br.com.exemplojpa.modelo.Usuario@1be16f5, try merging the detached and try the remove again.
Exception in thread "main" java.lang.IllegalStateException:
Exception Description: No transaction is currently active
at oracle.toplink.essentials.internal.ejb.cmp3.transaction.base.EntityTransactionImpl.commit(EntityTransactionImpl.java:82)
at oracle.toplink.essentials.internal.ejb.cmp3.transaction.EntityTransactionImpl.commit(EntityTransactionImpl.java:45)
at br.com.exemplojpa.persistencia.UsuarioDAO.removeUsuario(UsuarioDAO.java:124)
at br.com.exemplojpa.negocio.UsuarioBusiness.removeUsuario(UsuarioBusiness.java:63)
at br.com.exemplojpa.teste.TesteExemploJPA.main(TesteExemploJPA.java:81)
--main
// remove Usuario
Usuario usuarioRemove = new Usuario();
usuarioRemove.setId(14);
Usuario usuarioRemoveV =usuarioBusiness.pesquisarUsuario(usuarioRemove);
System.out.println("Nome Usuario Removido ="+usuarioRemoveV.getNome());
System.out.println("Id Usuario Removido ="+usuarioRemoveV.getId());
usuarioBusiness.removeUsuario(usuarioRemoveV);
---
public class UsuarioBusiness {
UsuarioDAO usuarioDAO = null;
/**
* Inserir usuário
*/
public void inserirUsuario(Usuario usuario) {
usuarioDAO = new UsuarioDAO();
usuarioDAO.inserirUsuario(usuario);
}
/**
* Pesquisar usuário
*/
public Usuario pesquisarUsuario(Usuario usuario) {
usuarioDAO = new UsuarioDAO();
Usuario retorno = new Usuario();
retorno = usuarioDAO.pesquisarUsuario(usuario.getId(), usuario);
return retorno;
}
/**
* Pesquisar usuário
*/
public List listaTodosUsuario() {
usuarioDAO = new UsuarioDAO();
List retorno = usuarioDAO.listaTodosUsuario();
return retorno;
}
/**
* Remove usuário
*/
public void removeUsuario(Usuario usuario) {
usuarioDAO = new UsuarioDAO();
usuarioDAO.removeUsuario(usuario);
}
}
--
public class UsuarioDAO {
private EntityManagerFactory factory = null;
private EntityManager manager = null;
public UsuarioDAO() {
factory = Persistence.createEntityManagerFactory("exemploJPA");
manager = factory.createEntityManager();
}
/**
* Inserindo um usuário
*
* @param usuario
*/
public void inserirUsuario(Usuario usuario) {
EntityTransaction transaction = manager.getTransaction();
try {
transaction.begin();
manager.persist(usuario);
transaction.commit();
} catch (Exception e) {
transaction.rollback();
System.err.println("Erro: " + e.getMessage());
} finally {
//manager.close();
}
}
/**
* Pesquisar um usuário
*
* @param usuario
*/
public Usuario pesquisarUsuario(Integer id, Usuario usuario) {
EntityTransaction transaction = manager.getTransaction();
Usuario retorno = null;
try {
transaction.begin();
retorno = (Usuario) manager.find(Usuario.class, id);
} catch (Exception e) {
transaction.rollback();
System.err.println("Erro: " + e.getMessage());
} finally {
transaction.commit();
manager.close();
}
return retorno;
}
public List listaTodosUsuario(){
EntityTransaction transaction = manager.getTransaction();
List lista = new ArrayList(0);
try{
//1Query q = manager.createQuery("select u.id ,u.login ,u.password,u.nome from USUARIO u where u.id > 1");
//lista = q.getResultList();
//2Query q = manager.createQuery("select object(u) from Usuario u where c.id > :cod" )
//.setParameter("cod", "10");
//lista = q.getResultList();
lista = manager.createQuery("select object(u) FROM Usuario u where u.id > " + 10).getResultList();
}catch(Exception e){
System.out.println("Erro ="+e);
}
return lista;
}
public void removeUsuario(Usuario usuario){
EntityTransaction transaction = manager.getTransaction();
try{
transaction.begin();
manager.remove(usuario);
System.out.println("Usuário removido com sucesso !!!!");
}catch(Exception e){
transaction.rollback();
System.out.println("Erro="+e);
}finally{
transaction.commit();
}
}
}
--