Estou estudo o livro Enterprise JavaBeans 3.0 (o´reilly) do Bill Burke …
Alguem sabe a diferença entre unidirecional @OneToMany para @ManyToOne … acredito eu que seja a mesma, pois ao fazer o relacionamento onde “der” muitos a chave vem como estrangeira para esta table.
Ex.: @OneToMany -> um cliente tem muitos telefones … entao o id do cliente vai com fk pra tabela de telefones @ManyToOne -> muitos cruzeiros tem um navio … entao o id do navio vai com fk pra tabela de cruzeiros
Estou estudo o livro Enterprise JavaBeans 3.0 (o´reilly) do Bill Burke …
Alguem sabe a diferença entre unidirecional @OneToMany para @ManyToOne … acredito eu que seja a mesma, pois ao fazer o relacionamento onde “der” muitos a chave vem como estrangeira para esta table.
Ex.: @OneToMany -> um cliente tem muitos telefones … entao o id do cliente vai com fk pra tabela de telefones @ManyToOne -> muitos cruzeiros tem um navio … entao o id do navio vai com fk pra tabela de cruzeiros
E ai … não é a mesma coisa ???
[/quote]
Se a FK fica em lugares diferentes obviamente não é a mesma coisa.
Poderiamos pensar que o mecanismo é o mesmo. Apenas na direção oposta. Realmente é isso.
Se é isso que vc se está referindo, então sim. Mas anotar com @OneToMany ou @ManyToOne não significa a mesma coisas e não produz o mesmo resultado.
Acho que ele quer sabre, porque isso.
Mas digamos que voê tem a situação do cliente ter muitos telefones e o telefone so pertencer a um cliente que você citou (embora acho que possa ser many-to-many, mas não vem ao caso) você precisa informar ao framework que que quem pertence a 1 e apenas um é o lado telefone e que o lado many da relação é clientes que pdoe ter varios telefones.
[quote=rafaelshock]Afinal existe diferença ou não???
de @OneToMany e @ManyToOne?[/quote]
Um pai pode ter zero ou vários filhos. Cada filho sempre terá um único pai (biologicamente falando).
Dependendo de como você vê esta relação, você pode ter um 1 : N (one to many) ou N : 1 (many to one).
Na prática, todas as relações 1 : N/N : 1 colocam a chave estrangeira (FK) na tabela que representa o lado N da relação. No caso de pai e filho, a FK ficará em filho, independente de olharmos como one to many ou many to one.
Quando falamos nesta relação, considerando a perspectiva e documentação do hibernate, devemos lembrar que ela sugere o uso de uma tabela associativa. Na minha concepção, creio que esta seja desnecessária.
Seguindo o que o hibernate traz em sua documentação, teríamos:
pai 1 : N pai_filho
filho 1 : N pai_filho
Onde a tabela pai_filho representaria o relacionamento entre pais e filhos.
É possível entender essa iniciativa como uma forma de evitar a “intromissão” de uma FK, porém, ela é um elemento bem simples e, quando falamos em termos de objetos, um filho contém um atributo chamado pai, logo, não há por que separar esta relação.