[JAVA] JPA-Grundlagen 2

Entitätsklasse

Was ist die Entitätsklasse?

Die Entity-Klasse ist eine Klasse, die einer Tabelle in der Datenbank entspricht. Sie können sich das als eine Klasse vorstellen, die eine "Entität" in einem relationalen Datenmodell darstellt.

Wichtig) Für die von JPA verwalteten Tabellen muss die entsprechende Entitätsklasse erstellt werden.

Entitätsklasse erstellen

Klassenerklärung

Die Entity-Klasse muss als POJO-Klasse (JavaBeans) mit der Annotation "@ javax.persistence.Entity" erstellt werden. Normalerweise wird auch die Schnittstelle java.io.Serializable implementiert.

Deklaration der Entitätsklasse, wenn Klassenname und Tabellenname identisch sind


@Entity
public class ClassName implements Serializable {
    // ...
}

Wenn der Klassenname genau mit dem Tabellennamen übereinstimmt, wird er automatisch der entsprechenden Tabelle zugeordnet. Wenn sich der Tabellenname und der Klassenname jedoch unterscheiden, verwenden Sie die Annotation "@ javax.persistence.Table", um den Namen zu benennen Sie müssen den Tabellennamen im Attribut explizit angeben.

Deklaration der Entitätsklasse, wenn Klassenname und Tabellenname unterschiedlich sind


@Entity
@Table(name="table_name")
public class ClassName implements Serializable {
    // ...
} 
Felddeklaration

In der Entity-Klasse müssen Sie ein Feld deklarieren, das der Primärschlüsselspalte der Tabelle entspricht, und für dieses Primärschlüsselfeld "@ javax.persistence.Id" angeben.

Die möglichen Datentypen in der Deklaration des Primärschlüsselfelds sind die unten gezeigten Typen.

Die Zuordnung ist für andere Spalten als die Primärschlüsselspalte optional. Ähnlich wie bei den Klassen- und Tabellennamenregeln werden Feld- und Spaltennamen automatisch zugeordnet, wenn sie identisch sind (Standardzuordnungsregel).

Die Entitätsklasse "Autor" (entsprechend der Autorentabelle), die den Autor des Buches darstellt, lautet beispielsweise wie folgt.

Author.java


@Entity
public class Author implements Serializable {
    
    @Id
    private Integer id;

    private String name;
}

Wenn der Feldname und der Spaltenname unterschiedlich sind, werden sie nicht automatisch zugeordnet. Sie müssen das Feld daher mit "@ javax.persistence.Column" versehen und den Tabellennamen im Namensattribut angeben, um eine Zuordnung vorzunehmen. Wenn der Spaltenname der Tabelle beispielsweise "author_name" und der Feldname der Entity-Klasse "name" lautet, müssen Sie wie folgt schreiben.

Author.java


@Entity
public class Author implements Serializable {
    
    @Id
    private Integer id;

    @Column(name="author_name")
    private String name;
}

Spaltenanmerkung

Datums- / Zeittypzuordnung
Aufzählungstypzuordnung

Verwenden Sie die Annotation "@ javax.persistence.Enumerated", um aufgezählte Felder zuzuordnen.

Automatische Generierung des Primärschlüssels

Recommended Posts

JPA-Grundlagen 1
JPA-Grundlagen 2
Rails Grundlagen
Ruby-Grundlagen
Fragmentgrundlagen
Docker-Grundlagen
ViewPager-Grundlagen
Java-Grundlagen
Java-Grundlagen
JavaScript-Grundlagen
Java-Grundlagen
RecyclerView-Grundlagen
Schienen CSV Basic
Grundlagen des Rails-Routings
Grundlagen der Rails-Datenbank
Grundlagen des Rails Logger
Grundlagen der Java-Programmierung
Grundlagen von Ruby
JPA mit PostgreSQL
Objektorientierte (Java) Grundlagen
Grundlagen regulärer Ausdrücke
Grundlagen der Java-Parallelverarbeitung
Rspec Basics [Rails]
Grundlagen der Stream-API