Relacionamento Hibernate

4 respostas
waslleys

Olá,

estou com um problema, estou criando uma aplicação q tem q acessar um banco d dados firebird.

O meu problema é o seguinte, no banco de dados nao existe nenhuma FK, assim como eu faço pra fazer um relacionamento entre os campos q deveriam ser FK no hibernate?

4 Respostas

S

cara explica melhor seu problema !!!

waslleys

é q o banco q to acessando nao tem nunhum relacionamento entre tabelas, ou seja Foreign keys.

Por exemplo:

tenho as tabelas cidade e bairro, onde na tabela bairro possuo um campo q referencia a tabela cidade, mais esse campo nao foi setado como FK, ele apenas guarda o id. Assim o banco reconhece q nao existe nenhuma relacao entre as duas tabelas, ou seja, esse relacionamento é feito na propria aplicacao feita em delphi.

Agora eu quero saber c consigo fazer um mapeamento java da tabela bairro, onde eu possa colocar o atributo cidade que ao invés d me trazer o id (integer), me traga o objeto cidade inteiro.

D

E ai Jovem. Tudo bem?

Cara… para o Hibernate não faz diferença este tipo de configuração do banco. Desde que o campo que deveria ser uma FK esteja lá, o hibernate vai mapear normalmente a entidade.

Se você tem Bairro e Cidade, é só colocar um atributo do tipo Cidade dentro da classe Bairro e mapear certinho com o Hibernate que todos viverão felizes para sempre! =]

Espero ter ajudado. Até.

waslleys

Ok, mais ja tentei d tudo e ainda continua dando erro.
Tentei colocar desse jeito mais nao funcionou :frowning:

@ManyToOne
@JoinColumn(name = "CHAVE", insertable = false, updatable = false)
private MepCliente mepCliente;

Dá esse erro, onde o hibernate tenta alterar o banco, criando um constraint, mas nao posso deixar ele alterar nada, pois o BD é d outra aplicação.

(LocalSessionFactoryBean.java:1008) - Unsuccessful schema statement: alter table TAB026 add constraint FK9309C6DF54E601D0 foreign key (CHAVE) references TAB017
org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544466. violation of FOREIGN KEY constraint "PKTAB017_CHAVE" on table "TAB017"
Reason: violation of FOREIGN KEY constraint "PKTAB017_CHAVE" on table "TAB017"

Como eu faço isso, usando annotations??

Criado 5 de setembro de 2007
Ultima resposta 10 de set. de 2007
Respostas 4
Participantes 3