JPA: Beziehungen
In JPA können Beziehungen zwischen Entitäten erstellt werden, um die Beziehungen in der Datenbank abzubilden. Es gibt verschiedene Arten von Beziehungen, die durch entsprechende Annotationen definiert werden.
Wichtige Annotationen
Abschnitt betitelt „Wichtige Annotationen“-
@OneToOne: Diese Annotation beschreibt eine 1:1-Beziehung zwischen zwei Entitäten. Jede Entität ist mit genau einer anderen Entität der anderen Klasse verknüpft. -
@OneToMany: Diese Annotation beschreibt eine 1:n-Beziehung zwischen zwei Entitäten. Eine Entität kann mit mehreren Entitäten der anderen Klasse verknüpft sein. -
@ManyToOne: Diese Annotation beschreibt eine n:1-Beziehung zwischen zwei Entitäten. Mehrere Entitäten können mit einer Entität der anderen Klasse verknüpft sein. -
@ManyToMany: Diese Annotation beschreibt eine m:n-Beziehung zwischen zwei Entitäten. Mehrere Entitäten können mit mehreren Entitäten der anderen Klasse verknüpft sein.
Beispiel einer OneToMany-Beziehung
Abschnitt betitelt „Beispiel einer OneToMany-Beziehung“In diesem Beispiel wird eine OneToMany-Beziehung zwischen einer Person und Car-Entität erstellt.
@Entitypublic class Person { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id;
// ...
@OneToMany(mappedBy = "owner") private List<Car> cars;
// Getter und Setter // ...}
@Entitypublic class Car { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id;
// ...
@ManyToOne @JoinColumn(name = "owner_id") private Person owner;
// Getter und Setter // ...}In diesem Beispiel hat eine Person mehrere Car-Objekte und jedes Auto hat genau einen Person-Besitzer. Die OneToMany-Beziehung ist in der Person-Entität definiert, während die ManyToOne-Beziehung in der Car-Entität definiert ist. Die mappedBy-Eigenschaft in der OneToMany-Annotation gibt an, welches Attribut in der Car-Entität die ManyToOne-Beziehung repräsentiert. Die @JoinColumn-Annotation in der Car-Entität gibt an, wie die beiden Entitäten in der Datenbank verknüpft sind.