Odwzorowanie wiele do wielu

Aby zdefiniować powiązanie wielowartościowe o krotności wiele do wielu, użyj odwzorowania wiele do wielu. Odwzorowanie wiele do wielu ma dwie strony: stronę będącą właścicielem i stronę niebędącą właścicielem. Tabelę łączenia należy określić po stronie będącej właścicielem. W przypadku odwzorowań dwukierunkowych, właścicielem może być dowolna ze stron.

  1. W widoku Struktura JPA wybierz pole, które ma być odwzorowane.

  2. Kliknij prawym przyciskiem myszy pole, a następnie wybierz opcję Odwzoruj jako > Wiele w wiele. W widoku Szczegóły JPA (w przypadku atrybutów) wyświetlane są właściwości wybranego pola.

  3. Wypełnij pozostałe pola w sekcji Informacje ogólne widoku Szczegóły JPA zgodnie z następującą tabelą.

    Właściwość Opis Wartość domyślna
    Odsyłacz hipertekstowy odwzorowania encji Definiuje odwzorowanie jako odwzorowanie wiele do wielu.

    Pole to odpowiada adnotacji @ManyToMany.

    Wiele do wielu
    Encja docelowa Encja, na którą ten atrybut jest odwzorowywany. null

    Nie jest konieczne jawne określenie encji docelowej, gdyż możliwe jest jej ustalenie na podstawie typu obiektu docelowego.

    Pobieranie Określa metodę ładowania danych z bazy danych. Dodatkowe informacje można znaleźć w sekcji Metoda pobierania.
    • Zachłanne

    • Oszczędne

    Oszczędne
    Odwzorowana przez Pole w bazie danych, które jest właścicielem relacji.
    Porządkowanie według Określa domyślny porządek obiektów zwracanych przez zapytanie. Szczegółowe informacje można znaleźć w sekcji Porządkowanie według.
    • Nieuporządkowane

    • Klucz główny

    • Niestandardowy

    Nieuporządkowane

  4. Wypełnij pola w sekcji Tabele łączenia widoku Szczegóły JPA zgodnie z następującą tabelą.

    Właściwość Opis Wartość domyślna
    Nazwa Nazwa tabeli łączenia, która zawiera kolumnę klucza obcego. Tabelę łączenia należy określić po stronie będącej właścicielem.

    Domyślnie przyjmuje się, że nazwa składa się z połączonych znakami podkreślenia nazw tabel podstawowych powiązanych z encjami.

    Kolumny łączenia Zaznacz opcję Przesłoń domyślne, a następnie dodawaj, edytuj lub usuwaj kolumny łączenia. Domyślnie przyjmuje się, że nazwa składa się z połączonych znakami podkreślenia nazw tabel podstawowych powiązanych z encjami.
    Kolumny łączenia odwrotnego Zaznacz opcję Przesłoń domyślne, a następnie dodawaj, edytuj lub usuwaj kolumny łączenia. Odwzorowania mają domyślnie łączenia pojedyncze.

  5. Aby dodać nową kolumnę łączenia lub łączenia odwrotnego, kliknij Dodaj.

    Aby zmodyfikować istniejącą kolumnę łączenia lub łączenia odwrotnego, zaznacz pole, które będzie modyfikowane i kliknij Edytuj.

Środowisko Eclipse doda do pola następujące adnotacje:

@JoinTable(joinColumns=@JoinColumn(name="<KOLUMNA_ŁĄCZENIA>"),
    name = "<NAZWA_TABELI_ŁĄCZENIA>")
@ManyToMany(cascade=CascadeType.<ZAKRES_PROPAGACJI>, fetch=FetchType.<METODA_POBIERANIA>,
    targetEntity=<ENCJA_DOCELOWA>, mappedBy = "<ODWZOROWANA_PRZEZ>") @OrderBy("<PORZĄDKOWANIE_WEDŁUG>")

 

Czynność pokrewna

Odwzorowywanie encji

 

Informacje pokrewne

Widok Struktura JPA
Widok Szczegóły JPA (dla atrybutów)

 

Pojęcie pokrewne

Zrozumienie odwzorowań obiektowo-relacyjnych
Zrozumienie API trwałości Java EJB 3.0