[RESOLVIDO] Hibernate - Dúvidas

2 respostas
J

Estou começando a usar o hibernate agora e já estou com algumas dúvidas. Vou postando aos poucos as mesmas aqui.
Estou usando o PostgreSQL como banco de dados.
A primeira é essa, na hora de mapear as minhas classes não estou sabendo “falar” para o hibernate que o gerador do id vai ser o que já existe no banco.
Por exemplo, tenho uma tabela aluno e nesta tabela tem um campo id_aluno, que é do tipo integer, e para gerar o id eu uso id_aluno_seq, que é a sequência criada no banco para poder gerenciar os valores do id_aluno.
Na minha classe eu não sei o que colocar na Annotation @GeneratedValue.
A minha classe está desta maneira:

Aluno.java

public class Aluno implements Serializable{
   
   @Id
   @GeneratedValue(strategy=GenerationType.SEQUENCE) //Quando uso este tipo de gerador ele usa o hibernate_sequence, gostaria de setar um só para o aluno....
   private int id;
}

2 Respostas

G

use isso:

@Entity

@Table(name=nome-tabela)

@SequenceGenerator(name=nome-sequence, sequenceName=nome-sequence)

public class Aluno implements Serializable{
@Id

@GeneratedValue(strategy=GenerationType.AUTO, generator=nome-sequence)

@Column(name=nome-do-atributo-da-tabela-que-recebe-da-sequence)

private int id;

abraço.

J

Valeu cara funcionou, só mudei o local do SequenceGenerator

@Entity
@Table(name="nome-tabela")
public class Aluno implements Serializable{

@Id
@SequenceGenerator(name="nome-sequence", sequenceName="nome-sequence")
@GeneratedValue(strategy=GenerationType.AUTO, generator="nome-sequence")
@Column(name="nome-do-atributo-da-tabela-que-recebe-da-sequence")
private int id;
Criado 14 de outubro de 2008
Ultima resposta 20 de out. de 2008
Respostas 2
Participantes 2