2
respuestas

[Duda] Many to one one To many

El instructor colocó en pedidos ManyToOne. con clientes , y yo lo habia colocado en clientes OneToMany. (Yo intento realizar el código cuando el instructor dice lo que vamos a hacer y luego comparo)

Mi pregunta es:

  • cual es la lógica de en que clase colocar la relación ManyToOne /
  • Porque se coloca en una sola clase, y no en ambas?
2 respuestas

¡Hola Kevin!

Entiendo tu duda sobre la relación ManyToOne y OneToMany en JPA. La lógica para decidir en qué clase colocar la relación depende de la naturaleza de la relación entre las entidades. En una relación ManyToOne, varias instancias de una entidad se relacionan con una única instancia de otra entidad. Por otro lado, en una relación OneToMany, una instancia de una entidad se relaciona con varias instancias de otra entidad.

En cuanto a tu pregunta sobre por qué se coloca la relación en una sola clase y no en ambas, es porque la relación se define en la entidad que representa el lado "muchos" de la relación. En otras palabras, si una entidad tiene una relación ManyToOne con otra entidad, la relación se define en la entidad que representa el "muchos", ya que varias instancias de esa entidad se relacionan con una única instancia de la otra entidad.

Espero que esto te haya ayudado a aclarar tus dudas. Si tienes alguna otra pregunta, no dudes en preguntar. ¡Espero haber ayudado y buenos estudios!

Hola Kevin,

Respecto a tu preguntas:

Si revisas la clase Cliente no verás nada escrito en el código que la relacione con la clase Pedido, entonces si escribes en la clase Cliente la anotación @OneToMany, JPA no sabrá con qué enlazarlo.

En cambio en la Clase Pedido está escrito private Cliente cliente; aquí sí se sabe que desde la clase Pedido hay una referencia a la clase Cliente, entonces si escribes la anotación @ManyToOne sobre ese atributo, JPA ya sabrá que está relacionando la Entidad Pedido con la Entidad Cliente.