[RESOLVIDO] DELETE NAO FUNCIONA CORRETAMENTE (Struts1, Spring e Hibernate)

3 respostas
B

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.

3 Respostas

Jair_Rillo_Junior

Bastante estranho, mas você tem certeza que no segundo método a variavel id está com o valor correto?
Outra coisa que você pode fazer, é configurar o log4j para mostrar o valor da ? do Hibernate, assim você terá certeza que ele pegou o valor correto, no seu caso, 50.

B

Ola jair,
Sim até coloquei o print la para conferir hehehe muito estranho esse erro.
Estou utilizando pela primeira vez essa integracao Spring e Hibernate…

Coloquei o log4j

Segue ae: testando com um id = 44

ID Usuario: 44

21:27:16,268 DEBUG SQL:111 - 
    delete 
    from
        usuario 
    where
        id=?
Hibernate: 
    delete 
    from
        usuario 
    where
        id=?
21:27:16,269 TRACE IntegerType:151 - binding '44' to parameter: 1

Obrigado pela atenção.

B

Resolvi eu tinha errado no jsp, estava passando no link a idade em vez do id entaum ele apagava se tinha algum registro com o valor da idade ou nao.

Obrigado pela atenção.

Criado 8 de junho de 2010
Ultima resposta 8 de jun. de 2010
Respostas 3
Participantes 2