Suche…


Bemerkungen

Beziehungen zwischen Entitäten Grundlagen

Ein Fremdschlüssel kann eine oder mehrere Spalten sein, die auf einen eindeutigen Schlüssel, normalerweise den Primärschlüssel, in einer anderen Tabelle verweisen.

Ein Fremdschlüssel und der übergeordnete übergeordnete Schlüssel, auf den er verweist, müssen die gleiche Anzahl und Art von Feldern haben.

Fremdschlüssel stehen für Beziehungen von einer oder mehreren Spalten in einer Tabelle zu einer oder mehreren Spalten in einer anderen Tabelle.

Vielfalt in Entitätsbeziehungen

Vielfalt in Entitätsbeziehungen

Multiplizitäten sind von der folgenden Art:

  • Eins-zu-Eins : Jede Entitätsinstanz bezieht sich auf eine einzelne Instanz einer anderen Entität.
  • One-to-Many : Eine Entitätsinstanz kann mit mehreren Instanzen der anderen Entitäten verknüpft werden.
  • Many-to-one : Mehrere Instanzen einer Entität können mit einer einzelnen Instanz der anderen Entität verknüpft werden.
  • Many-to-many : Die Entitätsinstanzen können mit mehreren Instanzen voneinander verbunden sein.

Eins-zu-Eins-Mapping

Eins-zu-Eins-Zuordnung definiert eine einwertige Zuordnung zu einer anderen Entität mit Eins-zu-Eins-Multiplizität. Diese Beziehungszuordnung verwendet die Annotation @OneToOne für die entsprechende persistente Eigenschaft oder das entsprechende Feld.

Beispiel: Vehicle und ParkingPlace Entitäten.

One-to-Many-Zuordnung

Eine Entitätsinstanz kann mit mehreren Instanzen der anderen Entitäten verknüpft werden.

One-to- @OneToMany -Beziehungen verwenden die @OneToMany Annotation für die entsprechende persistente Eigenschaft oder das entsprechende Feld.

Das Element mappedBy wird benötigt, um auf das von ManyToOne in der entsprechenden Entität annotierte Attribut zu verweisen:

 @OneToMany(mappedBy="attribute")

Eine Eins-zu-Viele-Zuordnung muss die Sammlung von Entitäten zuordnen.

Many-to-One-Zuordnung

Eine Many-to-One-Zuordnung wird definiert, indem das Attribut in der Quellenentität (das Attribut, das sich auf die @ManyToOne bezieht) mit der Annotation @ManyToOne .

Eine @JoinColumn(name="FK_name") beschreibt einen vorläufigen Schlüssel einer Beziehung.

Viele-zu-Viele-Mapping

Die Entitätsinstanzen können mit mehreren Instanzen voneinander verbunden sein.

Viele-zu-viele-Beziehungen verwenden die Annotation @ManyToMany für die entsprechende persistente Eigenschaft oder das entsprechende Feld.

Wir müssen eine dritte Tabelle verwenden, um die beiden Entitätstypen zu verknüpfen (Join-Tabelle).

@JoinTable-Anmerkungsbeispiel

Beim @JoinTable to- @JoinTable -Beziehungen in JPA kann die Konfiguration für die Tabelle, die für die verbundenen Fremdschlüssel verwendet wird, mithilfe der Annotation @JoinTable bereitgestellt werden:

@Entity
public class EntityA {
   @Id
   @Column(name="id")
   private long id;
   [...]
   @ManyToMany
   @JoinTable(name="table_join_A_B",
              joinColumns=@JoinColumn(name="id_A"), referencedColumnName="id"
              inverseJoinColumns=@JoinColumn(name="id_B", referencedColumnName="id"))
   private List<EntityB> entitiesB;
   [...]
}

@Entity
public class EntityB {
   @Id
   @Column(name="id")
   private long id;
   [...]
}

In diesem Beispiel, das aus EntityA besteht, das eine EntityB-Beziehung zwischen EntityB und EntityB aufweist, die durch das entitiesB Feld realisiert wird, verwenden wir die Annotation @JoinTable, um anzugeben, dass der Tabellenname für die Join-Tabelle table_join_A_B und aus den Spalten id_A und besteht id_B : Fremdschlüssel, die auf die Spalten- id in der EntityA-Tabelle und in der EntityB-Tabelle verweisen. (id_A,id_B) ist ein zusammengesetzter Primärschlüssel für table_join_A_B Tabelle table_join_A_B .



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow