La classe Entity est une classe qui correspond à une table dans la base de données. Vous pouvez le considérer comme une classe qui représente une «entité» dans un modèle de données relationnel.
Important) Pour les tables gérées par JPA, la classe Entity correspondante doit être créée.
La classe Entity doit être créée en tant que classe POJO (JavaBeans) avec l'annotation "@ javax.persistence.Entity". Il implémente également généralement l'interface java.io.Serializable.
Déclaration de classe d'entité lorsque le nom de la classe et le nom de la table sont identiques
@Entity
public class ClassName implements Serializable {
// ...
}
Si le nom de la classe est exactement le même que le nom de la table, il sera automatiquement mappé à la table correspondante, mais si le nom de la table et le nom de la classe sont différents, utilisez l'annotation "@ javax.persistence.Table" pour nommer Vous devez spécifier explicitement le nom de la table dans l'attribut.
Déclaration de classe d'entité lorsque le nom de la classe et le nom de la table sont différents
@Entity
@Table(name="table_name")
public class ClassName implements Serializable {
// ...
}
La classe Entity doit déclarer un champ qui correspond à la colonne de clé primaire de la table et doit spécifier "@ javax.persistence.Id" pour ce champ de clé primaire.
Les types de données possibles dans la déclaration du champ de clé primaire sont les types indiqués ci-dessous.
Le mappage est facultatif pour les colonnes autres que la colonne de clé primaire. Comme pour les règles de nom de classe et de table, si les noms de champ et de colonne sont exactement les mêmes, ils seront automatiquement mappés (règle de mappage par défaut).
A titre d'exemple, la classe Entity "Auteur" (correspondant à la table Auteur) qui représente l'auteur du livre est la suivante.
Author.java
@Entity
public class Author implements Serializable {
@Id
private Integer id;
private String name;
}
Si le nom du champ et le nom de la colonne sont différents, ils ne seront pas automatiquement mappés, donc pour mapper, vous devez annoter le champ avec "@ javax.persistence.Column" et spécifier le nom de la table dans l'attribut name. Par exemple, si le nom de colonne de la table est "nom_auteur" et que le nom de champ de la classe Entité est "nom", vous devez écrire comme suit.
Author.java
@Entity
public class Author implements Serializable {
@Id
private Integer id;
@Column(name="author_name")
private String name;
}
Utilisez l'annotation "@ javax.persistence.Enumerated" pour mapper les champs énumérés.
Recommended Posts