Problemas mapeamento FK no Hibernate

3 respostas
D

Boa tarde amigos
Eu tenho um banco de dados legado de um sistema em Delphi que estou passando pra Java, utilizei o HibernateTools pra gerar os Beans atraves do banco. Ele gerou td ok, porém ele dá pau quando vou subir o Tomcat acusando erro nos relacionamentos que tenham FK.
O erro eh o seguinte:

Nesse caso eu tenho um campo na tabela Tpt550 q é Foreign Key da tabela Tpt131.
No mapeamento no meu Bean Tpt550 gerado pelo Hibernate Tools está assim:

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns( {
	@JoinColumn(name = "CDEMPGRP", referencedColumnName = "CDEMPGRP", nullable = false, insertable = false, updatable = false),
	@JoinColumn(name = "CDCRP", referencedColumnName = "CDCRP", insertable = false, updatable = false) })
private Tpt131 tpt131;

Pesquisando esse problema no google só encontrei uma solução num forum gringo em q um cara q estava com esse problema estava relatando q se colocasse “nullable = false” em todas as JoinColumn funcionava, e eu testei e funcionou. Porém são mais de 200 tabelas a minha base e milhares de Joins, e estou desde ontem fazendo essas alterações.
Gostaria de saber se não tinha uma maneira mais fácil de resolver isso e também se não pode dar problema depois deu estar colocando “nullable = false” em todos os relacionamentos.

Obrigado!

3 Respostas

Lavieri

vc tem o netbenas ?? eu acho a geração do TopLink da oracle mais confiavel que a do HibernateTools …

c vc tiver o Netbeans, fica facil… crie um projeto, do tipo biblioteca… depois va em ARQUIVO > NOVO ARQUIVO > PERSISTENCE > CLASSES DE ENTIDADE DE BANCO DE DADOS …

nessa tela é tudo bem intuitivo… escolha Conexão de banco de dados > Nova conexão (configure a sua conexão)…

Escolha as tabelas que vc ker…

na janela seguinte tem um botão la embaixo, criar Unidade de Persistencia, quando for criar, altere de Hiberante para TopLink

va seguinte os passos, escolha o tipo de retorno das coleções entre Collection, Set e List … escolha se ker LAZY, ou outro tipo…
e finalize…

depois teste c as classes gerados não ficam melhor…

boa sorte

edmafer

Daniel,

Se tu conseguiu resolver seu problema por favor poste aqui a solução. Estou com o mesmo problema, e o duro é que o nullable=false ainda me retorna o mesmo erro.

Há sim… fiz o mapeamento com o netbeans 6.5 utilizando EntityClass from Database… mas nada :frowning:

ralphsilver

o que está acontecendo nesse trecho é que o hibernate não aceita vc colocar um nullable junto com insertable e updatable… nesse caso eu acho que se vc tirar o nullable na primeira annotation ele vai funcionar.

Provavelmente nessa column “CDEMPGRP” vc já citou ela em algum atributo na sua entidade em que ela seja nullable=false

Criado 19 de março de 2009
Ultima resposta 14 de mai. de 2009
Respostas 3
Participantes 4