Spring Boot 4 Microservices & REST APIs · Lektion

Entities und Repositories erstellen

Definieren Sie JPA-Entities zur Abbildung Ihres Datenmodells und verwenden Sie Spring-Data-Repositories für den Datenzugriff.

Lektion 3 von 611 Schritte

Entities und Repositories erstellen ist eine kostenlose Spring Boot 4 Microservices & REST APIs-Lektion auf CoddyKit. Dies ist Lektion 3 von 6. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Spring Boot 4 Microservices & REST APIs-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Spring Boot 4 Microservices & REST APIs-Kurs umfasst insgesamt 6 Lektionen.

Was sind JPA-Entities?

Willkommen beim Erstellen Ihres Datenmodells! In Spring Boot mit JPA ist eine Entity ein einfaches Java-Objekt, das eine Tabelle in Ihrer Datenbank repräsentiert.

Betrachten Sie sie als Vorlage für die Zeilen Ihrer Tabelle. Jede Instanz einer Entity-Klasse entspricht einer einzelnen Zeile in der Datenbanktabelle.

Eine Klasse als Entity kennzeichnen

Damit Spring Boot weiß, dass eine Java-Klasse eine Entity ist, verwenden wir die Annotation @Entity. Diese Annotation stammt aus der Java Persistence API (JPA).

Wenn Spring @Entity erkennt, weiß es, dass diese Klasse auf eine Datenbanktabelle abgebildet werden soll. Standardmäßig entspricht der Tabellenname dem Klassennamen (z. B. wird eine Product-Klasse auf eine Product-Tabelle abgebildet).

Primärschlüssel mit @Id definieren

Jede Datenbanktabelle benötigt einen Primärschlüssel, um jeden Datensatz eindeutig zu identifizieren. In JPA kennzeichnen wir ein Feld mit der Annotation @Id als Primärschlüssel.

Oft soll die Datenbank diese ID automatisch für uns erzeugen. Dafür verwenden wir die Annotation @GeneratedValue, typischerweise mit einer Strategie wie IDENTITY für automatisch hochzählende Zahlen.

Unsere erste Product-Entity

Erstellen wir eine einfache Product-Entity. Sie erhält eine ID, einen Namen und einen Preis. Beachten Sie die Annotationen @Entity, @Id und @GeneratedValue.

Denken Sie daran, einen Standardkonstruktor sowie Getter und Setter einzufügen, damit JPA korrekt funktioniert.

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;

@Entity
public class Product {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private double price;

    public Product() {}

    public Product(String name, double price) {
        this.name = name;
        this.price = price;
    }

    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public double getPrice() { return price; }
    public void setPrice(double price) { this.price = price; }

    @Override
    public String toString() {
        return "Product{" +
               "id=" + id +
               ", name='" + name + '\'' +
               ", price=" + price +
               '}';
    }
}

Spring-Data-Repositories kennenlernen

Nachdem wir nun eine Entität haben: Wie greifen wir auf die Datenbank zu, um Produkte zu speichern, abzurufen, zu aktualisieren oder zu löschen? Hier kommen Repositories ins Spiel!

Spring Data JPA stellt eine leistungsstarke Abstraktion bereit, die den Datenzugriff vereinfacht. Anstatt komplexe SQL-Abfragen zu schreiben, definieren Sie einfache Schnittstellen.

Die JpaRepository-Schnittstelle

Das Herzstück von Spring Data JPA ist die Schnittstelle JpaRepository. Wenn Ihre Repository-Schnittstelle JpaRepository erweitert, stellt Spring automatisch standardmäßige CRUD-Methoden (Create, Read, Update, Delete) für Ihre Entität bereit.

Sie müssen lediglich den Entitätstyp und den Typ des Primärschlüssels angeben, etwa so: JpaRepository<YourEntity, ID_Type>.

Unser Product-Repository definieren

Erstellen wir ein Repository für unsere Product-Entität. Es handelt sich lediglich um eine Schnittstelle, die JpaRepository erweitert und Spring anweist, den erforderlichen Code für uns zu generieren.

Wir geben Product als Entitätstyp und Long als Primärschlüsseltyp an.

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface ProductRepository extends JpaRepository<Product, Long> {
    // Spring Data JPA automatically provides methods like:
    // save(), findById(), findAll(), deleteById(), etc.
}

Repositories in Spring verwenden

In einer Spring-Boot-Anwendung würden Sie Ihr Repository normalerweise mithilfe von @Autowired in einen Service oder Controller injizieren. Anschließend können Sie die integrierten Methoden aufrufen.

  • repository.save(product): Speichert ein neues Produkt oder aktualisiert ein vorhandenes.
  • repository.findById(id): Sucht ein Produkt anhand seiner ID.
  • repository.findAll(): Ruft alle Produkte ab.

Entität und Repository in Aktion

Hier sehen Sie ein konzeptionelles Beispiel dafür, wie eine Entität erstellt und von einem Repository gespeichert würde. Wir simulieren das Verhalten des Repositorys, damit das Beispiel ohne eine vollständige Spring-Boot-Konfiguration ausgeführt werden kann.

Dabei wird ein Product-Objekt erstellt und eine „save“-Methode verwendet.

// --- Simulated Product Entity --- //
class Product {
    private Long id;
    private String name;
    private double price;

    public Product(Long id, String name, double price) {
        this.id = id;
        this.name = name;
        this.price = price;
    }
    // Getters and Setters (simplified for brevity)
    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public double getPrice() { return price; }
    public void setPrice(double price) { this.price = price; }

    @Override
    public String toString() {
        return "Product{id=" + id + ", name='" + name + "', price=" + price + "}";
    }
}

// --- Simulated Product Repository Interface --- //
interface ProductRepository {
    Product save(Product product);
}

// --- Simulated Product Repository Implementation --- //
class SimpleProductRepository implements ProductRepository {
    private static Long nextId = 1L;
    @Override
    public Product save(Product product) {
        if (product.getId() == null) {
            product.setId(nextId++); // Assign a new ID
        }
        System.out.println("Simulating save: " + product);
        return product;
    }
}

public class Main {
    public static void main(String[] args) {
        // 1. Create a Product entity instance
        Product newProduct = new Product(null, "Wireless Earbuds", 99.99);
        System.out.println("Created product: " + newProduct);

        // 2. Simulate saving it using our repository
        ProductRepository repository = new SimpleProductRepository();
        Product savedProduct = repository.save(newProduct);

        System.out.println("Product after simulated save: " + savedProduct);
    }
}

Schnelltest: Grundlegende Konzepte

Welche der folgenden Annotationen wird verwendet, um eine Klasse als JPA-Entität zu kennzeichnen, die einer Datenbanktabelle zugeordnet ist?

Zusammenfassung: Entitäten und Repositories

Sie haben die Grundlagen der Definition Ihres Datenmodells mit Spring Data JPA gelernt!

  • Entitäten sind Java-Objekte, die Datenbanktabellen repräsentieren, und werden mit @Entity gekennzeichnet.
  • Primärschlüssel werden mit @Id definiert und häufig mit @GeneratedValue automatisch generiert.
  • Repositories sind Schnittstellen, die JpaRepository erweitern und leistungsstarke, sofort verwendbare Methoden für den Zugriff auf Ihre Datenbank bereitstellen.

Diese beiden Konzepte bilden den Grundpfeiler der Datenpersistenz in Spring Boot.

Kostenlos starten

Lerne Java mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
24
Lektionen
93

Häufig gestellte Fragen

Ist die Lektion „Entities und Repositories erstellen“ kostenlos?

Ja — der vollständige Text von „Entities und Repositories erstellen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Spring Boot 4 Microservices & REST APIs-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Spring Boot 4 Microservices & REST APIs-Kurs umfasst insgesamt 6 Lektionen.

Was lerne ich in „Entities und Repositories erstellen“?

Definieren Sie JPA-Entities zur Abbildung Ihres Datenmodells und verwenden Sie Spring-Data-Repositories für den Datenzugriff. Du übst Spring Boot 4 Microservices & REST APIs mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Spring Boot 4 Microservices & REST APIs zu starten?

Keine Vorkenntnisse erforderlich. Spring Boot 4 Microservices & REST APIs auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 6.

Wie lange dauert die Lektion „Entities und Repositories erstellen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Spring Boot 4 Microservices & REST APIs-Lektion Code schreiben und ausführen?

Ja. Jede Spring Boot 4 Microservices & REST APIs-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. H2-Datenbank und JPA integrieren
  2. Einführung in Spring Data JPA
  3. Entities und Repositories erstellen
  4. Entitäten und Repositories definieren
  5. CRUD-Operationen mit REST
  6. CRUD-Operationen ausführen
← Zurück zu Spring Boot 4 Microservices & REST APIs