Comprendre les annotations @Id et @GeneratedValue(strategy = GenerationType.IDENTITY) pour les ID de table à incrémentation automatique
Dans l'API de persistance Java ( JPA), l'annotation @Id marque un champ comme clé primaire d'une entité. L'annotation @GeneratedValue spécifie comment la valeur de clé primaire est générée. Une stratégie couramment utilisée est GenerationType.IDENTITY, qui implique de s'appuyer sur la fonctionnalité d'incrémentation automatique de la base de données.
Pourquoi utiliser ces annotations ?
Ces annotations offrent plusieurs avantages :
Exemple d'utilisation
L'exemple de code suivant illustre comment les annotations @Id et @GeneratedValue(strategy = GenerationType.IDENTITY) sont utilisées :
@Entity public class Author { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; private String name; private String address; }
Dans cet exemple, le champ id est annoté à la fois avec @Id et @GeneratedValue(strategy = GenerationType.IDENTITY), indiquant qu'il s'agit de la clé primaire et qu'elle doit être auto-incrémentée.
GenerationType.IDENTITY vs. Other Types
GenerationType .IDENTITY est l'un des nombreux types de stratégie disponibles pour l'annotation @GeneratedValue. D'autres types incluent :
Le type approprié à utiliser dépend de la base de données spécifique utilisée et des exigences de l'application.
Nécessité d'étendre la classe de domaine
La nécessité d'étendre une classe abstraite de domaine dépend des exigences spécifiques de l'application. Les classes de domaine fournissent généralement des fonctionnalités et un comportement communs aux entités au sein d'un modèle de domaine. Dans l'exemple donné, l'extension de la classe Domain ne semble pas nécessaire, car la classe Author ne nécessite aucune fonctionnalité spécifique liée au domaine.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!