[JAVA] Principes de base de JPA 2

Classe d'entité

Qu'est-ce que la classe Entity?

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.

Créer une classe d'entité

Déclaration de classe

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 {
    // ...
} 
Déclaration de terrain

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;
}

Annotation de colonne

Mappage de type date / heure
Mappage du type d'énumération

Utilisez l'annotation "@ javax.persistence.Enumerated" pour mapper les champs énumérés.

Génération automatique de clé primaire

Recommended Posts

Principes de base de JPA 1
Principes de base de JPA 2
Notions de base sur les rails
Bases de Ruby
Notions de base sur les fragments
Principes de base de Docker
Principes de base de ViewPager
Les bases de Java
Les bases de Java
Bases de JavaScript
Les bases de Java
Principes de base de RecyclerView
Rails CSV Basic
Principes de base du routage des rails
Principes de base de la base de données Rails
Principes de base de l'enregistreur de rails
bases de la programmation Java
Bases de Ruby
JPA avec PostgreSQL
Notions de base orientées objet (Java)
Bases des expressions régulières
Principes de base du traitement parallèle Java
Principes de base de Rspec [Rails]
Principes de base de l'API Stream