-
Notifications
You must be signed in to change notification settings - Fork 14
Relación compartida (shared) OneToMany ManyToOne
En este ejemplo se tienen dos entidades Ciudad (City) y Carro (Car). En el modelo conceptual se indica que en una ciudad se registran varios carros, pero que un carro solo se puede registrar en una ciudad.
Nótese que la relación de tipo shared implica que tanto ciudad como carro pueden existir independientemente. Es decir, se puede crear un carro sin asociarlo obligatoriamente a una ciudad; o se puede crear una ciudad sin asociarle ningún carro.
En la transformación al modelo de entidades se deben crear dos asociaciones: una asociación entre CityEntity y CarEntity denominada cars, y una asociación entre CarEntity y CityEntity llamada city.
En la asociación cars, la cardinalidad se establece como OneToMany (una ciudad tiene registrado muchos carros). Nótese que no se define ningún tipo de propiedadad para el atributo "Cascade" de la relación, dado que cada entidad se persiste por su lado.
En la asociación city, la cardinalidad se establece como ManyToOne (muchos carros se registran en una ciudad).
Este es el código en Java que representa a cada entidad:
@Entity
public class CityEntity extends BaseEntity implements Serializable
{
private String name;
//...
@PodamExclude
@OneToMany(mappedBy = "city")
private List<CarEntity> cars = new ArrayList<CarEntity>();
//...
}
@Entity
public class CarEntity extends BaseEntity implements Serializable
{
private String plate;
private Integer model;
@PodamExclude
@ManyToOne
private CityEntity city;
//...
}
Un video con el paso a paso de la explicación puede consultarse en este link
Esta wiki fue creada para el curso ISIS2603 Desarrollo de Software en Equipos en la Universidad de los Andes. Desarrollado por Rubby Casallas con la colaboración de César Forero, Kelly Garcés, Jaime Chavarriaga y José Bocanegra. Universidad de los Andes, Bogotá, Colombia. 2021.
- Instalación del ambiente en máquina propia
- Configuración de la máquina virtual
- Ejecución del back
- Uso de Codespaces
- Clases
- Herencia
- Asociaciones
- Tipos de asociaciones
- Caso de estudio: la biblioteca
- Caso de estudio: la empresa
- Java Persistence API (JPA)
- Implementación paso a paso persistencia
- Ejemplo implementación persistencia
- Carga de datos en el Backend
- Relaciones compartidas (Shared) OneToOne
- Relaciones compartidas (Shared) OneToMany/ManyToOne
- Relaciones compuestas (Composite) OneToMany/ManyToOne
- Conceptos básicos de REST
- Diseño API REST
- Tutorial documentación diseño API
- Implementación API REST con Spring
- Tutorial implementación API