Problema na Geração Automática do ID no Hibernate

10 respostas
M

Bom dia pessoal,

Estou com problema na geração automatica do ID no hibernate.

Quando eu coloco @GeneratedValue(strategy=GenerationType.AUTO)
Ele dá o seguinte erro

A tabela/visão ‘HIBERNATE_UNIQUE_KEY’ não existe.

Porém estava pesquisando na internet e o pessoal coloca muito@GeneratedValue(strategy=GenerationType.IDENTITY)

Ai quando eu vou rodar ele disse que A coluna ID não pode ser nula, ou seja, não está preenchendo o campo ID.

Alguém poderia me ajudar?
Desde Já eu agradeço.

10 Respostas

R

Coloca o código de sua entidade toda aki, se não fica difícil…

L

Boa tarde!

Tive o mesmo problema com o 1. @GeneratedValue(strategy=GenerationType.AUTO) no MySQL e acabei deixando o Default: @GeneratedValue; funcionou legal.

Já o IDENTITY é utilizado para alguns SGBD´s como o SQLServer.

Até

H

Qual SGBD você está usando?
Você também tem que anotar como:

@Id

Espero ter ajudado.

M

Estou usando o java db.

@Id
    @GeneratedValue(strategy= GenerationType.IDENTITY)
    @Column(name="id")
    private Integer id_user;
M

Coloquei só o @GeneratedValue;
e deu o erro A tabela/visão ‘HIBERNATE_UNIQUE_KEY’ não existe.

H

Você já tem a base de dados gerada, ou está gerando com o hibernate a partir do mapeamento das entidades?
Coloca o script da tabela.

[EDIT]
Coloca o StackTrace() da exception.

R

Se estiver usando JPA + Hibernate, não esquece de colocar o generate DLL para true, para seu banco ser gerado automaticamente.

M

gerei via interface.

Id Pk is not null
nome varchar[100] is not null
Sobrenome[250] is not null
login varchar[32] is not null
password varchar [32] is not null
dataentrada varchar [15] is not null

H

Nunca usei o java db. Mas seu id não deveria estar auto-increment ? Ou não tem essa opção?

F

Fala MiguelCP, tudo bom?

Recomendo que vc dê uma boa olhada na documentação do Hibernate. A opção AUTO significa que o Hibernate vai escolher a melhor estratégia de acordo com o seu banco, e aí ou você gera a tabela de acordo com a expectativa dele ou então você configura para a geração automática do schema. Já a opção IDENTITY usa um recurso de geração automática de IDs no momento da inserção do registro que alguns Bancos têm, como o MSSQL e o HSQLDB. Você precisa decidir qual a melhor estratégia no seu caso.

Boa sorte!

Criado 20 de fevereiro de 2010
Ultima resposta 20 de fev. de 2010
Respostas 10
Participantes 5