Correlación de muchos a muchos

Utilice una Correlación de muchos a muchos para definir una asociación de muchos valores con multiplicidad de muchos a muchos. Una correlación de muchos a muchos tiene dos lados: el lado propietario y el lado no propietario. Debe especificar la tabla de unión en el lado propietario. Para correlaciones bidireccionales, cualquier lado puede ser el lado propietario.

  1. En la vista Estructura JPA, seleccione el campo a correlacionar.

  2. Pulse el campo con el botón derecho del ratón y seleccione Correlacionar como > Muchos a muchos. La vista Detalles de JPA (para atributos) visualiza las propiedades del campo seleccionado.

  3. Utilice esta tabla para cumplimentar los campos Información general de la vista Detalles JPA.

    Propiedad Descripción Valor predeterminado
    Hiperenlace de entidad de correlación Define esta correlación como una Correlación de muchos a muchos.

    Este campo corresponde a la anotación @ManyToMany.

    Muchos a muchos
    Entidad destino La entidad con la que se correlaciona este atributo. null

    No necesita especificar explícitamente la entidad destino ya que puede inferirse del tipo de objeto al que se hace referencia.

    Extracción Define cómo se cargan los datos de la base de datos. Consulte "Tipo de extracción" para conocer los detalles.
    • Impaciente

    • Perezosa

    Perezosa
    Correlacionado por El campo de base de datos propietario de la relación.
    Ordenar por Especifique el orden predeterminado para los objetos de devueltos por una consulta. Consulte la sección "Ordenar por".
    • Sin orden

    • Clave primaria

    • Personalizado

    Sin orden

  4. Utilice esta tabla para cumplimentar los campos en el área Información de tabla de unión en la vista Detalles de JPA.

    Propiedad Descripción Valor predeterminado
    Nombre Nombre de la tabla de unión que contiene la columna de clave foránea. Debe especificar la tabla de unión en el lado propietario.

    De forma predeterminada, se presupone que el nombre son las tablas primarias asociadas a las entidades concatenadas con un carácter de subrayado.

    Columnas de unión Seleccione Alterar temporalmente valor predeterminado y después Añada, Edite o Elimine las columnas de unión. De forma predeterminada, se presupone que el nombre son las tablas primarias asociadas a las entidades concatenadas con un carácter de subrayado.
    Columnas de unión inversas Seleccione Alterar temporalmente valor predeterminado y después Añada, Edite o Elimine las columnas de unión. De forma predeterminada, se presupone que la correlación tiene una sola unión.

  5. Para añadir una Columna de unión o una Columna de unión inversa nuevas, pulse Añadir.

    Para editar una Columna de unión o una Columna de unión inversa, seleccione el campo y pulse Editar.

Eclipse añade las anotaciones siguientes al campo:

@JoinTable(joinColumns=@JoinColumn(name="<JOIN_COLUMN>"), 
    name = "<JOIN_TABLE_NAME>")
@ManyToMany(cascade=CascadeType.<CASCADE_TYPE>, fetch=FetchType.<FETCH_TYPE>,
    targetEntity=<TARGET_ENTITY>, mappedBy = "<MAPPED_BY>")
@OrderBy("<ORDER_BY>")

 

Tarea relacionada

Correlacionar una entidad

 

Consulta relacionada

Vista Estructura JPA
Vista Detalles de JPA (para atributos)

 

Concepto relacionado

Entender las correlaciones OR
Entender la API Java Persistence de EJB 3.0