Pessoal, preciso da ajuda dos feras em hibernate. Estou criando o banco de dados pelo hibernate através da opção hbm2ddl.auto e como aqui na empresa há regras de nomenclatura para as contraints no banco preciso definir nos mapeamentos os nomes das contraints através da anotação @ForeignKey. Nos casos de relacionamentos OneToOne, OneToMany e ManyToOne consigui definir, o problema é que tenho duas classes com herança, definidas da seguinte forma:
@Entity
@Table(name = "tb_empresa", schema = "public")
public class Empresa extends PessoaJuridica {
}
@Entity
@Inheritance(strategy=InheritanceType.JOINED)
@Table(name = "tb_pessoaJuridica", schema = "public")
@SequenceGenerator(name = "pessoaJuridica_seq", sequenceName="pessoaJuridica_seq", initialValue=1, allocationSize=1)
public class PessoaJuridica {
private int codPessoaJuridica;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "pessoaJuridica_seq")
@Column(name = "codPessoaJuridica")
public int getCodPessoaJuridica() {
return codPessoaJuridica;
}
}
Como o id da Empresa na verdade é uma chave estrangeira para o id da PessoaJuridica, não sei como definir o nome dessa chave, e no banco fica da seguinte forma:
CREATE TABLE tb_empresa
(
codpessoajuridica integer NOT NULL,
CONSTRAINT tb_empresa_pkey PRIMARY KEY (codpessoajuridica),
CONSTRAINT fk9f3ea7b86d570aaf FOREIGN KEY (codpessoajuridica)
REFERENCES tb_pessoajuridica (codpessoajuridica) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
)
O que quero mudar é o “fk9f3ea7b86d570aaf”.