Gerar nome para constraint do foreign key [Resolvido]

3 respostas
F

Tudo bom gente,

estou criando um banco de dados e funciona muito bem com exceção do nome da constraint do foreign key, este é o sql que o hibernate esta criando

CREATE TABLE endereco ( id_endereco integer NOT NULL, descricao_end character varying(40) NOT NULL, idpessoa integer, CONSTRAINT endereco_pkey PRIMARY KEY (id_endereco), CONSTRAINT fk672d67c9ac8963f5 FOREIGN KEY (idpessoa) REFERENCES pessoas (id_pessoa) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION )

esta certo com exceção da constraint da foreign key que ele está gerando um nome aleatório e fica bem feio, tem como mudar isso no mapeamento do hibernate?

abaixo estão as classes que eu estou usando

@Entity @Table(name="endereco") public class Endereco implements Serializable { @Id private int id_endereco; @Column(name="descricao_end",length=40, nullable=false) private String desc_endereco; @ManyToOne(fetch=FetchType.EAGER) @JoinColumn(name="idPessoa", updatable=true, insertable=true) @Fetch(FetchMode.JOIN) //@Cascade(CascadeType.SAVE_UPDATE) private Pessoa pessoa;

@Entity @Table(name="pessoas") public class Pessoa implements Serializable { @Id private int id_pessoa; @Column(name="nome_pessoa",length=40, nullable=false) private String nome_pessoa; @OneToMany(mappedBy="pessoa", fetch=FetchType.LAZY) //@Cascade(CascadeType.ALL) private Collection<Endereco> endereco;

3 Respostas

L

Anota o atributo pessoa com @ForeignKey(name=“NOME_DA_FK”). O único contra é que essa anotação é do hibernate, nao serve pra JPA se um dia vc quiser migrar…

F

Blz, funcionou, vlw

Mas se quiser usar JPA como eu deveria fazer pra colocar nome na constraint da Foreign Key?

L

Nao sei, até hoje só usei o hibernate direto. Nunca procurei sobre isso…
Mas tenho curiosidade, se alguém souber e postar aí agradeceria bastante.
[]s

Criado 2 de março de 2011
Ultima resposta 3 de mar. de 2011
Respostas 3
Participantes 2