Verstehen der @Id- und @GeneratedValue(strategy = GenerationType.IDENTITY)-Anmerkungen für automatisch inkrementierende Tabellen-IDs
In der Java Persistence API ( JPA) markiert die @Id-Annotation ein Feld als Primärschlüssel für eine Entität. Die Annotation @GeneratedValue gibt an, wie der Primärschlüsselwert generiert wird. Eine häufig verwendete Strategie ist GenerationType.IDENTITY, bei der man sich auf die automatische Inkrementierungsfunktion der Datenbank verlässt.
Warum diese Annotationen verwenden?
Diese Annotationen bieten mehrere Vorteile:
Beispielverwendung
Das folgende Codebeispiel veranschaulicht, wie die Annotationen @Id und @GeneratedValue(strategy = GenerationType.IDENTITY) verwendet werden:
@Entity public class Author { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; private String name; private String address; }
In diesem Beispiel ist das ID-Feld sowohl mit @Id als auch mit Anmerkungen versehen @GeneratedValue(strategy = GenerationType.IDENTITY), was angibt, dass es sich um den Primärschlüssel handelt und automatisch inkrementiert werden sollte.
GenerationType.IDENTITY im Vergleich zu anderen Typen
GenerationType .IDENTITY ist einer von mehreren Strategietypen, die für die Annotation @GeneratedValue verfügbar sind. Andere Typen umfassen:
Der geeignete zu verwendende Typ hängt von der spezifischen verwendeten Datenbank und den Anforderungen der Anwendung ab.
Notwendigkeit der Erweiterung der Domäne Klasse
Die Notwendigkeit der Erweiterung einer Domänen-Abstraktklasse hängt von den spezifischen Anwendungsanforderungen ab. Domänenklassen stellen typischerweise gemeinsame Funktionalität und Verhalten für Entitäten innerhalb eines Domänenmodells bereit. Im gegebenen Beispiel scheint eine Erweiterung der Domain-Klasse nicht notwendig zu sein, da die Author-Klasse keine spezifischen domänenbezogenen Funktionen erfordert.
Das obige ist der detaillierte Inhalt vonWie generieren „@Id'- und „@GeneratedValue(strategy = GenerationType.IDENTITY)'-Anmerkungen automatisch inkrementierende IDs in JPA?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!