One to One mit Java Persistence API (JPA 2.0) und Spring Boot ohne XML

Manchmal braucht man eine „One to One“ Verbindung zweier BEs mit JPA (Java Persistence API) für Spring Boot (2.0.2) (JEE mit EJB 3.0 ist ähnlich, nur andere Annotationen).

Z.b. arbeiten ein Arzt in der Regel in einem Krankenhaus. Wenn sie nicht gerade als Belegärzte tätig sind. Also „One to One„:

One to One mit Java Persistence API (JPA 2.0) und Spring Boot ohne XML

Hier nun eine Kopiervorlage um diese wiederkehrende Verbindung anzulegen:

In Arzt.java ist folgendes nötig:

import javax.persistence.*;

@Entity
@Table(name = "arzt")
public class Arzt {
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "arzt_id")
	private Long id;

	@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "arzt")
	private Krankenhaus krankenhaus;

//...

protected Arzt() {
		// dieser Konstruktor wird nicht für die Objekterzeugung verwendet, nur Bean
	}

// Konstruktor mit Parametern und alle Getter und Setter ...

In Krankenhaus.java ist folgendes nötig:

import javax.persistence.*;

@Entity
@Table(name = "krankenhaus")
public class Krankenhaus {
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "krankenhaus_id")
	private Long id;

	@OneToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "arzt_id", nullable = false)
	private Arzt arzt;

	protected Krankenhaus() {
		// dieser Konstruktor wird nicht für die Objekterzeugung verwendet, nur Bean
	}
// Konstruktor mit Parametern und alle Getter und Setter

Wer eine many to many braucht, kann hier kopieren.

Ähnliche Artikel:

  1. Many to Many mit Java Persistence API (JPA 2.0) und Spring Boot ohne XML
  2. Wie kann Boilerplate Code in Java reduziert werden?
  3. Welche Möglichkeiten der Java Objekt-Erzeugung gibt es?

wallpaper-1019588
Wie kann mein Kind besser Vokabeln lernen?
wallpaper-1019588
Kollagen: Das Anti-Aging-Wunder?
wallpaper-1019588
Matcha in München genießen – meine Empfehlungen
wallpaper-1019588
Abschied von Paudi 💔 – Ein Herzensprojekt geht zu Ende