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 
Mas esta pedindo usuario e senha… 
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…