Mapeamento Muitos para Muitos

Use um Mapeamento Muitos para Muitos para definir uma associação com valor de muitos com a multiplicidade muitos para muitos. Uma mapeamento muitos para muitos tem dois lados: o lado particular e o lado não-particular. Você deve especificar a tabela de junção no lado particular. Para mapeamentos bidirecionais, os dois lados podem ser lados particulares.

  1. Na visualização Estrutura do JPA, selecione o campo para mapear.

  2. Clique com o botão direito do mouse no campo e, em seguida, selecione Mapear Como > Muitos para Muitos. A Visualização Detalhes do JPA (para Atributos) exibe as propriedades do campo selecionado.

  3. Use esta tabela para completar os campos de Informações Gerais da visualização Detalhes do JPA.

    Propriedade Descrição Default
    Hyperlink de Entidade de Mapeamento Define este mapeamento como um Mapeamento de Muitos para Muitos.

    Esse campo corresponde à anotação @ManyToMany.

    Muitos para Muitos
    Entidade de Destino A entidade à qual esse atributo é mapeado. nulo

    Você não precisa especificar explicitamente a entidade de destino, pois ela pode ser deduzida do tipo de objeto que está sendo referido.

    Buscar Define como os dados são carregados a partir do banco de dados. Consulte "Tipo de Busca" para obter detalhes.
    • Ávido

    • Lento

    Lento
    Mapeado por O campo de banco de dados que possui o relacionamento.
    Solicitado por Especifica o pedido padrão para objetos retornados de uma consulta. Consulte "Solicitado por" para obter detalhes.
    • Nenhum pedido

    • Chave Primária

    • Customizado

    Nenhum pedido

  4. Use esta tabela para completar os campos na área Informações de Tabela de Junção na visualização Detalhes do JPA.

    Propriedade Descrição Default
    Nome Nome da tabela de junção que contém a coluna da chave externa. Você deve especificar a tabela de junção no lado particular.

    Por padrão, supõe-se que o nome deva ser as tabelas primárias associadas com as entidades concatenadas com um sublinhado.

    Colunas de Junção Selecione Substituir Padrão, em seguida, Incluir, Editar ou Remover as colunas de junção. Por padrão, supõe-se que o nome deva ser as tabelas primárias associadas com as entidades concatenadas com um sublinhado.
    Inverter Colunas de Junção Selecione Substituir Padrão, em seguida, Incluir, Editar ou Remover as colunas de junção. Por padrão, o mapeamento deve ter uma junção simples.

  5. Para incluir uma nova Coluna de Junção Invertida ou Coluna de Junção, clique em Incluir.

    Para editar uma Coluna de Junção Invertida ou Coluna de Junção, selecione o campo e clique em Editar.

O Eclipse inclui as seguintes anotações no 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

Mapeando uma Entidade

 

Referência Relacionada

Visualização Estrutura de JPA
Visualização Detalhes do JPA (para Atributos)

 

Conceito Relacionado

Entendendo Mapeamentos OR
Entendendo a API do Java Persistence EJB 3.0