[Dúvida] Qual a diferença de One-to-One e Many-To-One?

Prezados,
Utilizando hibernate tanto com One-To-One e Many-to-one…os resultados e situações são idênticos…

Por acaso tem alguma diferença entre as relações?
Ex:
One-to-one (Um cachorro tem um dono, e vice-versa)
Eu poderia normalmente por relação Many-to-one no Hibernate em ambas as tabelas e tudo funcionaria numa boa…

Abraços!!!

Uma pessoa teria muitos cachorros, mas um cachorro teria apenas uma pessoa.

Essa aí eh a diferença. E tem relacionamento unidirecional e bidirecional. Na minha assinatura tem um post que eu escrevi sobre isso.

Talvez te ajude. Inté

one-to-one = um para um
many-to-one = varios para um

Como nosso amigo disse

a diferença é que na prática, la no banco, na tabela de cachorros o id_dono deve ser unico de alguma forma no banco para one-to-one e não deve ter essa restrição para one-to-many (indice unico no oracle, o campo ser unique no my sql… etc), isso além da FK obviamente. Caso você gere esta base pelo hibernate eu não sei se ele faz isso, mas que eu saiba o conceito é esse.

no seu bean do hibernate ao invés de usar o próprio objeto pessoa usa-se o list de pessoas… bom isso eu acho que você ja sabia…

Bom vamos lá amigo.

Exemplo: OneToOne Relacionamento Empregado com Dependente.
Um empregado só pode estar relacionado com 1 dependente e aquele dependente só pode estar relacionado com aquele empregado!

Exemplo ManyToOne Dependente com Empregado

Varios Dependentes podem esta relacionado apenas com um determinado Empregado. e um Empregado pode ter varios Dependentes.

espero ter ajudado! :smiley: