Correlação vários com vários

Use uma Correlação vários-com-vários para definir uma associação polivalente com multiplicidade vários-para-vários. Uma correlação vários-com-vários tem dois lados: lado proprietário e lado não-proprietário. Tem de especificar a tabela de junção do lado proprietário. No caso de correlações bidireccionais, qualquer lado pode ser o lado proprietário.

  1. Seleccione o campo a correlacionar na vista Estrutura de JPA.

  2. Clique com o botão direito no campo e depois seleccione Correlacionar Como > Vários com Vários. A vista Detalhes da JPA (para atributos) apresenta as propriedades do campo seleccionado.

  3. Use esta tabela para preencher os campos de Informação geral da vista Detalhes da JPA.

    Propriedade Descrição Predefinição
    Hiperligação de Entidade de Correlação Define esta correlação como uma Correlação vários-com-vários.

    Este campo corresponde à anotação @ManyToMany.

    Vários com vários
    Entidade destino A entidade com a qual este atributo está correlacionado. null

    Não é necessário especificar explicitamente a entidade destino, uma vez que esta pode ser inferida do tipo de objecto referenciado.

    Obter Define como os dados são carregados a partir da base de dados. Para mais esclarecimentos, consulte a secção "Tipo de acção de obtenção".
    • Ansioso

    • Ocioso

    Ocioso
    Correlacionado por O campo da base de dados ao qual pertence a relação.
    Ordenar por Especifica a ordem predefinida para objectos devolvidos por uma consulta. Para mais esclarecimentos, consulte "Ordenar por".
    • Sem ordenação

    • Chave principal

    • Personalizado

    Sem ordenação

  4. Use esta tabela para preencher os campos da área Informação da tabela de junção vista Detalhes da JPA.

    Propriedade Descrição Predefinição
    Nome Nome da tabela de junção que contém a coluna da chave externa. Tem de especificar a tabela de junção do lado proprietário.

    Por predefinição, o nome é o da tabela principal associada com as entidades concatenado com um traço de sublinhado.

    Colunas de junção Seleccione Substituir predefinição, depois, Adicionar, Editar, ou Remover as colunas de junção. Por predefinição, o nome é o da tabela principal associada com as entidades concatenado com um traço de sublinhado.
    Colunas de junção inversa Seleccione Substituir predefinição, depois, Adicionar, Editar, ou Remover as colunas de junção. Por definição, a correlação tem uma única junção.

  5. Para acrescentar uma nova coluna de junção ou de junção inversa, faça clique em Adicionar.

    Para editar um coluna de junção ou de junção inversa existente, seleccione o respectivo campo e faça clique em Editar.

Eclipse adiciona as seguintes anotações ao 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>")

 

Tarefa relacionada

Correlacionar uma entidade

 

Referências relacionadas

Vista Estrutura da JPA
Vista Detalhes da JPA (para atributos)

 

Conceito relacionado

Perceber correlações OR
Perceber a Java Persistence API para EJB 3.0