Académique Documents
Professionnel Documents
Culture Documents
3 SpringDataJPA 1JEE 2021 2022
3 SpringDataJPA 1JEE 2021 2022
3 SpringDataJPA 1JEE 2021 2022
Auditoire
1er Mastère Professionnel Audit et Sécurité Informatique
Manipul
@ JPA e Spring Data
Se base
interface java
sur
XML Hibernate EclipseLink
classe java
avec SQL dans JDBC
des chaine
SQL BDR
4
I.2. Spring Data
5
I.3. Les différentes interfaces de Spring Data
ApplicationContext ctx ;
ctx=SpringApplication.run(GestionEtudiantsApplication.class, args);
EtudiantDAO dao = ctx.getBean(EtudiantDAO.class);
@SpringBootApplication
public class GestionEtudiantsApplication {
8
IV. ApplicationContext
9
V. Les principes de base : Spring Data - JPA
10
V.1. Les principales méthodes
12
Les mots clés pour les noms de méthode
13
Exemple de méthodes
import org.springframework.data.jpa.repository.Query;
public interface EtudiantDAO extends JpaRepository<Etudiant, Long>
{ //….
@Query("SELECT i FROM Etudiant i WHERE i.naissance <= ?1")
List<Etudiant> findNaissanceSince(Date date);
} ■ On peut nommer les paramètres avec @Param
17
VI.2. Les clauses d’un select
19
Exemple de requête
20
Exemple de requête avec jointure
■ ‰
Le texte des requêtes utilise beaucoup les alias de classe
■ Les attributs des classes doivent être préfixés par les alias
■ Une erreur fréquente du débutant est d’oublier les alias en
préfixe
22
VII.5. Autres clauses
■ group by
■ order by
■ having
■ distinct
■ les fonctions d’agrégation : count, avg...
■ les requêtes imbriquées
■ les mots-cles : all, (not) in, like, between, (not)
null, (not) exists...
23
Remarque
24
VIII. Requête paramétrées
25
Les paramètres avec ?num ou :nom
■ Attention
■ le même nombre de paramètre dans la requête et dans la méthode
■ Respecter l’ordre et le type des paramètres
■ Paramètre désigné par ? avec numéro du paramètre
import org.springframework.data.jpa.repository.Query;
public interface EtudiantDAO extends JpaRepository<Etudiant, Long>
{//….
@Query("SELECT i FROM Etudiant i WHERE naissance <= ?1")
List<Etudiant> findNaissanceSince(Date date);
}
27
Exemples d’utilisation de @Autowired
@RequestMapping(value="/auteur")
public String ajouterEtudiant() public void ajouterEtudiant()
{Etudiant E2; {Etudiant E2;
E2=new Etudiant("khem","Med", E2=new Etudiant("khem","Med",
new Date()); new Date());
dao.save(A2); dao.save(A2);
Collection<Auteur> Collection<Auteur>
aut=dao.findAll(); aut=dao.findAll();
return ”pageetudiant”;
} }
28