Nome da chave estrangeira FK + Hibernate

Pessoal eu dou um export para gera o banco ele gera a classe mais cria um nome para FK muito esquisito

CONSTRAINT fk157b9b6c4dbbe485 FOREIGN KEY

Como faz para dizer isso na Classe o nome da FK ?

QUERIA ESTE RESULTADO :


-- Table: sigi.aluno

-- DROP TABLE sigi.aluno;

CREATE TABLE sigi.aluno
(
  idaluno serial NOT NULL,
  bairro character varying(255),
  cep character varying(255),
  cidade character varying(255),
  codigo bigint NOT NULL,
  complemento character varying(255),
  dtnascimento character varying(255),
  email character varying(255),
  endereco character varying(255),
  fonecelular character varying(255),
  fonecomercial character varying(255),
  foneresidencial character varying(255),
  nome character varying(255),
  pergunta1 character varying(255),
  pergunta2 character varying(255),
  pergunta3 character varying(255),
  decanato integer,
  estadocivil integer,
  grauinstrucao integer,
  paroquia integer,
  idturma integer,
  CONSTRAINT aluno_pkey PRIMARY KEY (idaluno),
  CONSTRAINT fk_decanato FOREIGN KEY (decanato)
      REFERENCES sigi.decanato (iddecanato) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_estadocivil FOREIGN KEY (estadocivil)
      REFERENCES sigi.estadocivil (idestadocivil) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_grauinstrucao FOREIGN KEY (grauinstrucao)
      REFERENCES sigi.grauinstrucao (idgrauinstrucao) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_idturma FOREIGN KEY (idturma)
      REFERENCES sigi.turma (idturma) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_paroquia FOREIGN KEY (paroquia)
      REFERENCES sigi.paroquia (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
  OIDS=FALSE
);
ALTER TABLE sigi.aluno OWNER TO root;

Segundo a documentacao do hibernate

constrained (opcional): Especifica que uma constraint foreign key na primary key da tabela mapeada referencia
a tabela da classe associada, Esta opção afeta a ordem em queh save() e delete() são cascateadas,
e determina se a associação pode ser substituída (isto também é usado pela ferramenta schema export).

vc seta: constrained=“true ou false”

onde como por favor exemplo ?

constrained=“true”

[code]package br.com.catequese.to;

import java.io.Serializable;
import javax.persistence.*;

@Entity
@Table(name = “aluno”)
public class Aluno implements Serializable {

private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer idAluno;
private String nome;
private String endereco;
private String complemento;
private String bairro;
private String cep;
private String dtNascimento;
private String foneResidencial;
private String foneComercial;
private String foneCelular;
private String email;
private String cidade;
private long codigo;
private String pergunta1;
private String pergunta2;
private String pergunta3;

@JoinColumn(name = "idTurma")
@ManyToOne
private Turma turma;

@JoinColumn(name = "decanato")
@ManyToOne
private Decanato decanato;

@JoinColumn(name = "estadoCivil")
@ManyToOne
private EstadoCivil estadoCivil;

@JoinColumn(name = "grauInstrucao")
@ManyToOne
private GrauInstrucao grauInstrucao;

@JoinColumn(name = "paroquia")
@ManyToOne
private Paroquia paroquia;

public Aluno() {
}

public Aluno(Integer idAluno) {      
    this.idAluno = idAluno;
}

public Integer getIdAluno() {
    return idAluno;
}

public void setIdAluno(Integer idAluno) {
    this.idAluno = idAluno;
}

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public String getEndereco() {
    return endereco;
}

public void setEndereco(String endereco) {
    this.endereco = endereco;
}

public String getComplemento() {
    return complemento;
}

public void setComplemento(String complemento) {
    this.complemento = complemento;
}

public String getBairro() {
    return bairro;
}

public void setBairro(String bairro) {
    this.bairro = bairro;
}

public String getCep() {
    return cep;
}

public void setCep(String cep) {
    this.cep = cep;
}

public String getDtNascimento() {
    return dtNascimento;
}

public void setDtNascimento(String dtNascimento) {
    this.dtNascimento = dtNascimento;
}    

public String getFoneResidencial() {
    return foneResidencial;
}

public void setFoneResidencial(String foneRes) {
    this.foneResidencial = foneRes;
}

public String getFoneComercial() {
    return foneComercial;
}

public void setFoneComercial(String foneCom) {
    this.foneComercial = foneCom;
}

public String getFoneCelular() {
    return foneCelular;
}

public void setFoneCelular(String foneCelular) {
    this.foneCelular = foneCelular;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}   

public String getCidade() {
    return cidade;
}

public void setCidade(String cidade) {
    this.cidade = cidade;
}

public Turma getTurma() {
    return turma;
}

public void setTurma(Turma turma) {
    this.turma = turma;
}

public long getCodigo() {
    return codigo;
}

public void setCodigo(long codigo) {
    this.codigo = codigo;
}

public String getPergunta1() {
    return pergunta1;
}

public void setPergunta1(String pergunta1) {
    this.pergunta1 = pergunta1;
}

public String getPergunta2() {
    return pergunta2;
}

public void setPergunta2(String pergunta2) {
    this.pergunta2 = pergunta2;
}

public String getPergunta3() {
    return pergunta3;
}

public void setPergunta3(String pergunta3) {
    this.pergunta3 = pergunta3;
}

public Decanato getDecanato() {
    return decanato;
}

public void setDecanato(Decanato decanato) {
    this.decanato = decanato;
}

public EstadoCivil getEstadoCivil() {
    return estadoCivil;
}

public void setEstadoCivil(EstadoCivil estadoCivil) {
    this.estadoCivil = estadoCivil;
}

public GrauInstrucao getGrauInstrucao() {
    return grauInstrucao;
}

public void setGrauInstrucao(GrauInstrucao grauInstrucao) {
    this.grauInstrucao = grauInstrucao;
}

public Paroquia getParoquia() {
    return paroquia;
}

public void setParoquia(Paroquia paroquia) {
    this.paroquia = paroquia;
}

}[/code]

vc já tem o banco e está criando a modelagem? se sim, procura por hibernate tools, e faz a engenharia reversa do seu banco, pra gerar o modelo automaticamente.

tenho as classes, e quero gera o BANCO…

Com anotações eu não sei por que não uso, uso sempre os hbm.xml como mapeamento.

Mas pode pesquisar aqui na documentação sobre anotações: http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/

Obrigado pela atenção… to lendo aki.