rafaelshock:
Afinal existe diferença ou não???
de @OneToMany e @ManyToOne?
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.