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.
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 {
// ...
}
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;
}
Verwenden Sie die Annotation "@ javax.persistence.Enumerated", um aufgezählte Felder zuzuordnen.
Recommended Posts