JavaWeb - Hibernate MÉTODO REMOVE

8 respostas
javahibernate
Cleiton_Conceicao

gente, estou tentando usar o método remove que o hibernate fornece, porém não está funcionando de jeito nenhum. alguém sabe dizer o que é ?segue o códgio do meu método e o erro que o console retornar.

public void  delete(int user)  {
	Consultar consulta = new Consultar ();
	
	//Long primaryKey = Long.parseLong(user);

	
	EntityManager entity = consulta.getEntityManager();
	
	System.out.println("usuário deletado"+user);

  
	entity.getTransaction().begin();
	entity.remove(user);
	entity.getTransaction().commit();
}

Caused by: java.sql.SQLException: Cannot add foreign key constraint
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)

8 Respostas

Cleiton_Conceicao

alguém??

Emerzoom

Bom dia!

A resposta está bem clara no seu trace. Vc quer remover um item que tem um relacionamento de chave esrtangeira em outra tabela.

Para conseguir isso, vc vai ter que utilizar um cascade ou, fazer no método “raiz” que é vc remover primeiro da tabela de relacionamento fraco pra depois remover na tabela de relacionamento forte.

Cleiton_Conceicao

mas a tela de usuário não tem foreign key com nada.
está estranho…

Emerzoom

O problema não está na sua tela e sim nos relacionamentos que vc criou ou alguém criou na sua modelagem de dados.
Se vc está utilizando jdbc, vai ter que se preocupar somente com as tabelas do banco e como elas estão relacionadas.
Se vc está utilizando Hibertante/OpenJPA, verifique seus mapeamentos. O trace não mente. Pelo contrário. Ele é o melhor amigo do programador na hora de procurar problemas no código-fonte.

Cleiton_Conceicao

esse projeto é um projeto simples de faculdade. foi eu que fiz o sistema.
a tabela não possui relacionamento nenhum. só uso ela pra inserir registros e validar sessão.

jonathan.sky

Como está o User?

Emerzoom

Dê uma olhada nesse post. Talvez te ajude:

javaflex

Já aconselhamos várias vezes, dá uma estudada ou pelo menos pesquise exemplos antes de fazer as coisas, vai perder mais tempo indo na base do chute. Olhando seu código parece que está na base do chute.

Criado 12 de dezembro de 2017
Ultima resposta 13 de dez. de 2017
Respostas 8
Participantes 4