1
resposta

Erro ao utilizar as anotações @ManyToOne e @JoinColumn

Olá, boa noite! Realizei o desafio proposto no capitulo 2 - Operações CRUD, onde pedia para criar as entidades Funcionarios e Unidade de Trabalho, porém não consegui fazer a parte dos relacionamentos da tabela, então me baseia a resolução do professor.

Porém ao executar a minha aplicação levo o seguinte erro

org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "alter table funcionarios add constraint FK3dpb9qdad95blmn1gprxage57 foreign key (cargo_id) references cargo (id)" via JDBC Statement

Caused by: java.sql.SQLIntegrityConstraintViolationException: (conn=683) Cannot add or update a child row: a foreign key constraint fails (alura.#sql-alter-5280-2ab, CONSTRAINT FK3dpb9qdad95blmn1gprxage57 FOREIGN KEY (cargo_id) REFERENCES cargo (id))

Pelo que entendi é algo relacionado com a tabela funcionarios onde teria uma nova coluna cargo_id

Mesmo com esse erro, gerou essa nova coluna no meu banco de dados

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Alguém consegue me ajudar a entender o porque estou levando esse erro e mesmo assim a coluna esta sendo criada?

1 resposta

Olá Aline, tudo bem? Esse erro que você está enfrentando pode estar relacionado com a criação de uma nova coluna na tabela "funcionarios" que está tentando referenciar uma chave estrangeira que não existe na tabela "cargo".

Uma possível solução seria verificar se a tabela "cargo" já foi criada antes da tabela "funcionarios" e se a chave primária da tabela "cargo" está sendo referenciada corretamente na tabela "funcionarios".

Além disso, é importante verificar se as anotações @ManyToOne e @JoinColumn estão sendo utilizadas corretamente nas entidades Funcionarios e Unidade de Trabalho.

Caso ainda tenha dúvidas, sugiro que revise o código e compare com a solução proposta pelo professor.

Espero ter ajudado e bons estudos!