3
respostas

erro 500

Olá! Tentei fazer o procedimento e recebi erro 500. Debuguei o código e vi que a role está correta, mas algo não está indo certo.

Trecho do erro abaixo:

Hibernate: select projeto0_.id as id1_2_0_, projeto0_.descricao as descrica2_2_0_, projeto0_.titulo as titulo3_2_0_ from projeto projeto0_ where projeto0_.id=?
Hibernate: delete from projeto_habilidades where projeto_id=?
Hibernate: delete from projeto where id=?
[2m2021-05-07 15:14:51.532[0;39m [33m WARN[0;39m [35m15176[0;39m [2m---[0;39m [2m[nio-8080-exec-4][0;39m [36mo.h.engine.jdbc.spi.SqlExceptionHelper  [0;39m [2m:[0;39m SQL Error: 1451, SQLState: 23000
[2m2021-05-07 15:14:51.584[0;39m [31mERROR[0;39m [35m15176[0;39m [2m---[0;39m [2m[nio-8080-exec-4][0;39m [36mo.h.engine.jdbc.spi.SqlExceptionHelper  [0;39m [2m:[0;39m Cannot delete or update a parent row: a foreign key constraint fails (`equipes`.`users_projetos`, CONSTRAINT `FK5nlrmonjmutn3trjve9odhmro` FOREIGN KEY (`projetos_id`) REFERENCES `projeto` (`id`))
[2m2021-05-07 15:14:51.693[0;39m [32m INFO[0;39m [35m15176[0;39m [2m---[0;39m [2m[nio-8080-exec-4][0;39m [36mo.h.e.j.b.internal.AbstractBatchImpl    [0;39m [2m:[0;39m HHH000010: On release of batch it still contained JDBC statements
[2m2021-05-07 15:14:52.146[0;39m [31mERROR[0;39m [35m15176[0;39m [2m---[0;39m [2m[nio-8080-exec-4][0;39m [36mo.a.c.c.C.[.[.[/].[dispatcherServlet]   [0;39m [2m:[0;39m Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement] with root cause

java.sql.SQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (`equipes`.`users_projetos`, CONSTRAINT `FK5nlrmonjmutn3trjve9odhmro` FOREIGN KEY (`projetos_id`) REFERENCES `projeto` (`id`))
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:117) ~[mysql-connector-java-8.0.23.jar:8.0.23]
3 respostas

Oi Ian,

Você está tentando deletar um projeto que está sendo referenciado na tabela users_projetos e por isso ocorre o erro.

Dá uma verificada no código quanto a isso.

eu sei que o problema está nos relacionamento. Meu sistema está assim:

Entidades Projeto User Habilidade Perfil

Relacionamentos User

@ManyToMany
    @JoinTable
    private List<Habilidade> habilidades = new ArrayList<>();

    @ManyToMany
    @JoinTable()
    private List<Projeto> projetos = new ArrayList<>();

    @ManyToMany(fetch = FetchType.EAGER)
    private List<Perfil> perfis = new ArrayList<>();

Projeto

private String titulo;

    private String descricao;

    @ManyToMany
    @JoinTable()
    private List<Habilidade> habilidades = new ArrayList<>();

Habilidade

private String nome;

Acho que a solução é colocar uma anotação cascade alguma coisa, não sei...

" Oi Ian,

Você está tentando deletar um projeto que está sendo referenciado na tabela users_projetos e por isso ocorre o erro.

Dá uma verificada no código quanto a isso. "

Como fazemos nessa situação? Deletar um projeto e seu relacionamento?