¿Cuál es la diferencia entre usar una @OneToManyy @ElementCollectionanotación ya que tanto el trabajo en la relación de uno a muchos?
¿Cuál es la diferencia entre usar una @OneToManyy @ElementCollectionanotación ya que tanto el trabajo en la relación de uno a muchos?
Respuestas:
Creo que @ElementCollectiones principalmente para mapear no entidades (integrables o básicas) mientras @OneToManyse usa para mapear entidades. Entonces, cuál usar depende de lo que quieras lograr.
ElementCollectiones una anotación JPA estándar, que ahora se prefiere sobre la anotación patentada de Hibernate CollectionOfElements.
Significa que la colección no es una colección de entidades, sino una colección de tipos simples (Strings, etc.) o una colección de elementos incrustables (clase anotada con @Embeddable).
También significa que los elementos son propiedad exclusiva de las entidades que los contienen: se modifican cuando se modifica la entidad, se eliminan cuando se elimina la entidad, etc. No pueden tener su propio ciclo de vida.
@ElementCollectionle permite simplificar el código cuando desea implementar una relación de uno a muchos con un tipo simple o incrustado. Por ejemplo, en JPA 1.0 cuando deseaba tener una relación uno a muchos con una lista de Strings, tenía que crear una entidad simple POJO ( StringWrapper) que contenía solo la clave primaria y la Stringpregunta:
@OneToMany
private Collection<StringWrapper> strings;
//...
public class StringWrapper {
@Id
private int id;
private String string;
}
Con JPA 2.0 puedes simplemente escribir:
@ElementCollection
private Collection<String> strings;
Más simple, ¿no? Tenga en cuenta que aún puede controlar los nombres de tabla y columna mediante @CollectionTableanotaciones.
Básico o integrado : @ElementCollection
Entidades : @OneToMany o @ManyToMany
@ElementCollection:
@OneToMany / @ManyToMany:
ElementCollection puede anular las asignaciones o la tabla para su colección, por lo que puede hacer que varias entidades hagan referencia a la misma clase Embeddable, pero que cada una almacene sus objetos dependientes en una tabla separada.