Hibernate - Asignaciones O / R

Hasta ahora, hemos visto mapeo O / R muy básico usando hibernación, pero hay tres temas de mapeo más importantes, que tenemos que aprender en detalle.

Estos son ...

  • Mapeo de colecciones,
  • Mapeo de asociaciones entre clases de entidad y
  • Asignaciones de componentes.

Asignaciones de colecciones

Si una entidad o clase tiene una colección de valores para una variable en particular, entonces podemos mapear esos valores usando cualquiera de las interfaces de colección disponibles en java. Hibernate puede persistir instancias dejava.util.Map, java.util.Set, java.util.SortedMap, java.util.SortedSet, java.util.Listy cualquier array de entidades o valores persistentes.

No Señor. Tipo de colección y descripción de mapeo
1 java.util.Set

Esto se asigna con un elemento <set> y se inicializa con java.util.HashSet

2 java.util.SortedSet

Esto se asigna con un elemento <set> y se inicializa con java.util.TreeSet. lossort El atributo se puede establecer en un comparador o en un orden natural.

3 java.util.List

Esto se asigna con un elemento <list> y se inicializa con java.util.ArrayList

4 java.util.Collection

Esto se asigna con un elemento <bag> o <ibag> y se inicializa con java.util.ArrayList

5 java.util.Map

Esto se asigna con un elemento <map> y se inicializa con java.util.HashMap

6 java.util.SortedMap

Esto se asigna con un elemento <map> y se inicializa con java.util.TreeMap. lossort El atributo se puede establecer en un comparador o en un orden natural.

Las matrices son compatibles con Hibernate con <primitive-array> para los tipos de valores primitivos de Java y <array> para todo lo demás. Sin embargo, rara vez se utilizan, por lo que no los discutiré en este tutorial.

Si desea mapear las interfaces de una colección definida por el usuario, que no es compatible directamente con Hibernate, debe informar a Hibernate sobre la semántica de sus colecciones personalizadas, lo cual no es muy fácil y no se recomienda su uso.

Asignaciones de asociaciones

El mapeo de asociaciones entre clases de entidad y las relaciones entre tablas es el alma de ORM. A continuación se presentan las cuatro formas en que se puede expresar la cardinalidad de la relación entre los objetos. Un mapeo de asociación puede ser unidireccional y bidireccional.

No Señor. Tipo de mapeo y descripción
1 Muchos a uno

Mapeo de la relación de varios a uno usando Hibernate

2 Doce y cincuenta y nueve de la noche

Mapeo de la relación uno a uno usando Hibernate

3 Uno a muchos

Mapeo de la relación uno a varios usando Hibernate

4 Muchos a muchos

Mapeo de la relación de muchos a muchos usando Hibernate

Asignaciones de componentes

Es muy posible que una clase Entity pueda tener una referencia a otra clase como variable miembro. Si la clase referida no tiene su propio ciclo de vida y depende completamente del ciclo de vida de la clase de entidad propietaria, entonces la clase referida, por lo tanto, se llama como elComponent class.

El mapeo de Colección de componentes también es posible de manera similar al mapeo de Colecciones regulares con pequeñas diferencias de configuración. Veremos estas dos asignaciones en detalle con ejemplos.

No Señor. Tipo de mapeo y descripción
1 Asignaciones de componentes

Mapeo de una clase que tiene una referencia a otra clase como variable miembro.