DELETE NAO FUNCIONA CORRETAMENTE (Struts1, Spring e Hibernate)
Ola amigos,
Estou utilizando Struts1, Spring e Hibernate... consigo fazer consultas e inserir mais nao consigo excluir passando o parametro do metodo porem estranhamente se coloco o numero do id manualmente funciona.
Estou utilizando HibernateDaoSupport.
Por exemplo:
public class UsuarioDAOImpl extends HibernateDaoSupport implements UsuarioDAO {
//ASSIM DELETA (PASSANDO O ID DIRETO NO CASO 50)
@Override
public void remover1(Integer id) {
System.out.println("ID Usuario: "+id);
Session session = getSession();
session.createQuery("Delete from Usuario usr where usr.id = :id_usuario")
.setInteger("id_usuario", 50).executeUpdate();
session.flush();
}
//ASSIM NAO DELETA (PASSANDO O ID POR PARAMETRO )
@Override
public void remover2(Integer id) {
System.out.println("ID Usuario: "+id);
Session session = getSession();
session.createQuery("Delete from Usuario usr where usr.id = :id_usuario")
.setInteger("id_usuario", id).executeUpdate();
session.flush();
}
}
No console aparece o delete e nao aparece nenhuma excecao mais o registro nao é deletado.
ID Usuario: 50
Hibernate:
delete
from
usuario
where
id=?
O que será que esta ocorrendo?
Obrigado pela atencao de todos.
Estou utilizando Struts1, Spring e Hibernate... consigo fazer consultas e inserir mais nao consigo excluir passando o parametro do metodo porem estranhamente se coloco o numero do id manualmente funciona.
Estou utilizando HibernateDaoSupport.
Por exemplo:
public class UsuarioDAOImpl extends HibernateDaoSupport implements UsuarioDAO {
//ASSIM DELETA (PASSANDO O ID DIRETO NO CASO 50)
@Override
public void remover1(Integer id) {
System.out.println("ID Usuario: "+id);
Session session = getSession();
session.createQuery("Delete from Usuario usr where usr.id = :id_usuario")
.setInteger("id_usuario", 50).executeUpdate();
session.flush();
}
//ASSIM NAO DELETA (PASSANDO O ID POR PARAMETRO )
@Override
public void remover2(Integer id) {
System.out.println("ID Usuario: "+id);
Session session = getSession();
session.createQuery("Delete from Usuario usr where usr.id = :id_usuario")
.setInteger("id_usuario", id).executeUpdate();
session.flush();
}
}
No console aparece o delete e nao aparece nenhuma excecao mais o registro nao é deletado.
ID Usuario: 50
Hibernate:
delete
from
usuario
where
id=?
O que será que esta ocorrendo?
Obrigado pela atencao de todos.
Bruno Porto
Curtidas 0
Respostas
Dyego Carmo
08/06/2010
Você precisa fechar a transacao...
nao eh session.flush , eh session.getTransation().commit().
nao eh session.flush , eh session.getTransation().commit().
GOSTEI 0
Bruno Porto
08/06/2010
Ola Dyego o getSession() é um metodo do HibernateDaoSupport do jar do spring o metodo nao é meu. O Spring nao gerencia a transacao?
GOSTEI 0
Dyego Carmo
08/06/2010
Se você não demarcar-la , não.
----------------------------------------------------------------
Dúvidas em Programação ? - http://www.forHelp.US
Controverso Eu ? - http://www.go-java.com
----------------------------------------------------------------
Dúvidas em Programação ? - http://www.forHelp.US
Controverso Eu ? - http://www.go-java.com
GOSTEI 0
Carlos Mazzi
08/06/2010
resolveu amigao?
GOSTEI 0
Bruno Porto
08/06/2010
Resolvido.
GOSTEI 0