Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Estou com dúvida no curso de JPA 2: Introdução à persistência de dados com JPA e Hibernate, no exercício do capítulo Mapeamento de relacionamentos entre classes.

Estou tentando persistir uma entidade em uma aplicação web que tem uma relação ManyToOne com outra entidade, mas só está dando erro.

O erro apresentado no console:

WARN : org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL Error: 1064, SQLState: 42000
ERROR: org.hibernate.engine.jdbc.spi.SqlExceptionHelper - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'natural, pai, profissao, rg, telefone, nome) values ('', null, 'SIM', '', '', ''' at line 1

Como eu faço para persistir essa entidade em uma aplicação web. Obs. Estou utilizando spring-mvc. Sei que o curso não é voltada para aplicação web, mas penso que de nada adiantaria aprender a parte teórica sem saber aplicar na pratica. Então essa é minha dúvida, como eu faria para persisirtir entidades com relacionamentos em uma aplicação web.

5 respostas

Verifique se a chave primária é AUTO_INCREMENT, pois se o valor passado para a chave primária for '', ocorre um erro, agora se for AUTO_INCREMENT o banco gerencia a chave primária automaticamente.

E também verifique se o relacionamento das chaves primárias e estrangeiras fazem sentido.

A chave primária é o nome, uma string, no banco varchar.

solução!

Então nesse caso, o campo não pode ser '', devido a chave primária ser varchar, o hibernate está entendendo que você está tentando inserir um novo registro então esse dado é transiente, mas obrigatoriamente você deve inserir o nome que é a chave primaria.

Olá Tiago

A sua dúvida foi resolvida?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software