aew brother coloca o trecho do codigo que esta
com problema para podermos visualizar melhor p problema.
Re:Erro na inserção com hibernate
9 Respostas
no mapeamento do hibernate vc especificou o campo id para que ele use sequencia ?
Eu acho que é alguma coisa com o Identity, acho que tem que ter criada alguma coisa no banco pra que ele saiba qual é o próximo valor do Id…
Tenta tirar os annotations de generatedvalue (e o do column name acho que não precisa):
@Id
private int id;
private int matricula;
private String nome;
private int cpf;
E aí passa um valor válido na mão mesmo pro Id…
aluno.setId(1);
aluno.setNome("berdam");
aluno.setMatricula(123);
aluno.setCpf(1234343);
Aí saberemos que ele não tá conseguindo gerar o Id sozinho e pelo menos vc já sabe onde procurar depois…
Desculpa se a resposta foi óbvia ou não ajudou muito… 
Tenta o seguinte:
-
Mude a anotação que define a forma de geração do ID do objeto
De:
@GeneratedValue(strategy = GenerationType.IDENTITY)
Para:
@GeneratedValue() -
Manda o Hibernate gerar as tabelas e veja se deu certo.
Galera, iniciei com hibernate e consegui fazer ele funcionar, mas aconteceu isso, eu tenho 4 campos na tabela (id,cpf,matricula,nome), ele só está inserindo 3 (cpf, matricula, nome), acredito que deve ser alguma coisa de configuração, estou usando Mysql.
Hibernate: insert into hibernate.aluno (cpf, matricula, nome) values (?, ?, ?)
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
Exception in thread “main” org.hibernate.exception.GenericJDBCException: could not insert: [hiber.Aluno]
Se alguém ajudar eu agradeço
valeu
Fiz alguns testes e o erro acontece no session.save, parece que falta o campo ID no comando SQL do hibernate.
Configuration cfg = new AnnotationConfiguration();
cfg.configure();
SessionFactory sf = cfg.buildSessionFactory();
Session session = sf.openSession();
Transaction tx = session.beginTransaction();
Aluno aluno = new Aluno();
aluno.setId(0);
aluno.setNome("berdam");
aluno.setMatricula(123);
aluno.setCpf(1234343);
session.save(aluno);
tx.commit();
session.close();
Na minha classe Aluno está dessa maneira
@Entity
@Table(name=“aluno”,schema=“hibernate”)
public class Aluno {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private int id;
private int matricula;
private String nome;
private int cpf;
Nenhuma dica ai galera??
Fiz uns teste aqui
acessei o mysql pelo query browser e inseri uma linha com alguns dados.
No eclipse tentei realizar um update e deu certo, portanto acredito que seja erro na geração de uma nova id.
Galera, cometi uma gafe aqui, setei o campo ip como primary key, mas não como auto incremento no mysql.
Arrumei a parada lá e resolveu a situacão.
valeu pela ajuda e desculpe esse rolo todo.