3 - Spring Data JPA - Entités
3 - Spring Data JPA - Entités
3 - Spring Data JPA - Entités
– Persistance
– JDBC
– ORM
– JPA
– Hibernate
– Spring Data
– Spring Data JPA
– Entité
– Annotations
Ou :
• Des pilotes JDBC sont disponibles pour tous les systèmes connus
de bases de données relationnelles.
• Inconvénients :
– Pas de séparation entre le code technique et le code métier.
– utilisation du langage SQL rend la couche d’accès aux données
difficilement maintenable.
• Exemple :
try {
conn = DriverManager.getConnection(DB_URL,USER,PASSWORD);
String insertSQL = "INSERT INTO Piste (idPiste, numPiste, nomPiste, couleur, longueur,
pente) VALUES (?, ?, ?, ?, ?, ?, ?)";
preparedStmt = conn.prepareStatement(insertSQL);
preparedStmt.setLong(1, piste.getIdPiste());
preparedStmt.setLong(2, piste.getNumPiste());
preparedStmt.setString(3, piste.getNomPiste()));
preparedStmt.setString(4, piste.getCouleur());
preparedStmt.setInteger(5, piste.getLongeur());
preparedStmt.setInteger(6, piste.getPente());
preparedStmt.execute();
}
catch (SQLException e) { e.printStackTrace(); }
finally { try { preparedStmt.close(); } catch (SQLException e) { e.printStackTrace(); }
}
© 2023-2024 – Esprit – ASI II - Spring – Spring Data JPA – Entités 7
ORM
• Elle vise à réduire la quantité de code produit par l’API JDBC (les
opérations sont les mêmes : Connexion + CRUD + Déconnexion).
• Dans ce cours nous allons utiliser Spring Data JPA qui se base sur
Hibernate comme implémentation de la spécification JPA.
• Une entité est une classe dont les instances peuvent être
persistantes.
• Elle est déclarée avec l'annotation @Entity.
• Elle possède au moins une propriété déclarée comme identité
de l’entité avec l'annotation @Id.
• Utilisation d'annotations
– Sur la classe : correspondance avec la table associée.
– Sur les attributs ou sur les propriétés : correspondance avec les
colonnes de la table.
• La classe est un JavaBean (attributs, accesseurs, mutateurs)
• Exemple : (qui sera créé pas à pas par la suite) :
import jakarta.persistence.*;
import lombok.*;
@Entity
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class Chambre {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long idChambre;
@Enumerated(EnumType.STRING)
private TypeChambre typeC;
}
© 2023-2024 – Esprit – ASI II - Spring – Spring Data JPA – Entités 17
ANNOTATIONS
• Une entité, déclarée par l’annotation @Entity définit une classe Java comme
étant persistante et donc associée à une table dans la base de données.
• @Table : Optionnel. Par défaut, une entité est associée à la table portant le
même nom que la classe. Il est possible d’indiquer le nom de la table par une
annotation @Table.
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long idChambre;
• Création d’un projet Spring Boot tp-foyer (Voir Cours 2- Spring Boot)
Ou :
Créer les entités se trouvant dans le diagramme des classes (sans les associations) et vérifier qu’ils
ont été ajoutés avec succès dans la base de données.