[RESOLVIDO] Relacionamento FK Hibernate

Olá pessoal, sou novo em java, mas ja estou pegando as manha!
Espero que me ajudem nesta dúvida…

Procurei na web, e aqui no forum, mas nao encontrei em nenhum lugar qual a forma correta de fazer um relacionamento com FK…

A situaçao é a seguinte:
[Tabelas com seus campos]
Banco
*cod_banco (pk)

Agencia
*cod_agencia (pk)
*cod_banco (fk banco)

Conta Corrente
*cod_conta (pk)
*cod_agencia (fk agencia)
*cod_banco (fk agencia)

alguem pode me ajudar??
coisas que tentei e nao deram certo:

	@OneToMany( cascade = {CascadeType.REFRESH},
				fetch= FetchType.LAZY)
	@NotFound(action=NotFoundAction.IGNORE)
	@JoinColumns({
		@JoinColumn(name="cod_agencia",insertable=false,updatable=false),
		@JoinColumn(name="cod_banco",insertable=false,updatable=false)})
	public Set<ContaCorrente> contaCorrente;

Muito Obrigado.

Da uma olhada nessa apostila voce vai tirar de letra isso…
abraços!

ftp://users.dca.ufrn.br/UnP2007/Hibernate_Anotacoes.pdf

Obrigado pela ajuda :smiley:

Mas esta pedindo usuario e senha… :frowning:

podes passar?

Muito Obrigado. 8)

o arquivo está aqui:


http://sourceforge.net/projects/hibrefptbr/files/hibrefptbr/20061120/hibernate_reference20061120.pdf/download

Assim que eu tiver um tempo, eu vou ler isto e fazer o exemplo, entao posto aqui.

Obrigado.

Olá pessoal.

Realmente tentei várias vezes, mas nao achei nenhuma soluçao… ja encontrei varios exemplos que nao funcionam…

o meu problema está na ContaCorrente, onde sao 2 FKs.

Alguem tem uma soluçao???

Tentativa com ERRO:

@ManyToOne(cascade = {CascadeType.REFRESH}, fetch= FetchType.LAZY, targetEntity=Agencia.class) @JoinColumns({ @JoinColumn(name="cod_banco",insertable=false,updatable=false), @JoinColumn(name="cod_agencia",insertable=false,updatable=false)}) private Agencia agencia; [color=red]
ERRO:
Caused by: org.hibernate.AnnotationException: A Foreign key refering entity.Agencia from entity.ContaCorrente has the wrong number of column. should be 1[/color]


E na Agencia possui o relacionamento com o Banco, e [color=blue]funciona perfeitamente[/color] assim:

	@ManyToOne(cascade = {CascadeType.REFRESH},
			   fetch= FetchType.LAZY,
			   targetEntity=Bancos.class)
	@JoinColumn(name="cod_banco",insertable=false,updatable=false)
	private Bancos bancos;

Muito Obrigado.

Resolvido por mim:

Finalmente consegui fazer funcionar…

sege o exemplo para funcionar:

AGENCIA PARA O BANCO

	@ManyToOne(cascade = {CascadeType.REFRESH},
			   fetch= FetchType.LAZY,
			   targetEntity=Bancos.class)
	@JoinColumn(name="cod_banco",referencedColumnName="cod_banco",insertable=false,updatable=false)
	private Bancos bancos;

CONTA CORRENTE para AGENCIA

@ManyToOne(cascade = {CascadeType.REFRESH},
			   fetch= FetchType.LAZY,
			   targetEntity=Agencia.class)
	@JoinColumns({
		@JoinColumn(name="cod_agencia",referencedColumnName="cod_agencia",insertable=false,updatable=false),
		@JoinColumn(name="cod_banco",referencedColumnName="cod_banco",insertable=false,updatable=false)})
	private Agencia agencia;

essa soluçao foi achada com a tecnica: tentativa/erro…

Obrigado. :lol:

Cara…
Apesar do post fazer um tempo…
me ajudou…estava com um problema parecido…
valeu…