Montag, 12. März 2012

JPA Many-To-Many Beziehungen mappedBy

Eine Many-To-Many-Beziehung wird über die JPA-Annotation @ManyToMany realisiert.
Auf beiden Seiten liegt eine Collection vor mit einer solchen Annotation, wobei eine Seite dabei wieder den Eigentümer/Verwalter der Beziehung innehaben muss - mappedBy:
@Entity
public class A {

@Id
  private Long id;
  ...
  @ManyToMany
  private List<B> colBs;
}

@Entity

public class B {
  @Id
  private Long id;

  ...
  @ManyToMany(mappedBy="colBs")

  List<A> colAs;
}

Somit ist Entity A Besitzer der n-m-Beziehung.
Eine n-m-Beziehung wird immer in einer separaten dedizierten Tabelle gespeichert:
Der Name ist zusammengesetzt: Entity-Name des Besitzers der Beziehung + _ + Entity-Name der anderen Seite.
In diesem Beispiel: A_B.
Die Foreignkeyspalten für die Herstellung der Beziehung im Default wird nach folgendem Muster erzeugt:
Attributname der referenzierten Seite + _ + PK-Name.
In diesem Beispiel: colbs_id bzw. colas_id

2 Kommentare:

  1. "Somit ist Entity B Besitzer der n-m-Beziehung."

    Sicher? Ich denke A ist Besitzer.

    "Der Name ist zusammengesetzt: Entity-Name des Besitzers der Beziehung + _ + Entity-Name der anderen Seite.
    In diesem Beispiel: A_B."

    Eben :-)


    AntwortenLöschen