From 96cf8102a01dfefc606b99a285aebd848a39d2d3 Mon Sep 17 00:00:00 2001 From: "steve.maingana" Date: Mon, 13 Oct 2025 17:53:15 +0200 Subject: [PATCH] Client / Salarie / Authentification --- src/main/java/com/test/bdd/SalarieJPA.java | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/main/java/com/test/bdd/SalarieJPA.java diff --git a/src/main/java/com/test/bdd/SalarieJPA.java b/src/main/java/com/test/bdd/SalarieJPA.java new file mode 100644 index 0000000..24ba5e6 --- /dev/null +++ b/src/main/java/com/test/bdd/SalarieJPA.java @@ -0,0 +1,50 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package com.test.bdd; + +import com.test.beans.Salarie; +import jakarta.ejb.Stateless; +import jakarta.persistence.*; +import java.util.List; + +/** + * + * @author steve.maingana + */ +@Stateless +public class SalarieJPA { + @PersistenceContext(unitName = "bdclientPU") //en lien avec le fichier persistence.xml : + private EntityManager em; + + // Mise à jour d'un client + public int update(Salarie salarie) { + Salarie leSalarie = em.merge(salarie); + em.flush(); + return leSalarie.getId(); + } + + // Lecture de tous les clients + public List readAll() { + List lesSalaries = em.createQuery("SELECT s FROM Salarie s", Salarie.class).getResultList(); + return lesSalaries; + } + + public Salarie readSalarie(String login, String mdp) { + TypedQuery query = em.createQuery("SELECT s FROM Salarie s WHERE s.login = ?1 AND s.mdp= ?2 LIMIT 1", Salarie.class); + Salarie salarie = query.setParameter(1, login) + .setParameter(2, mdp) + .getSingleResult(); + + return salarie; + } + + // Création d’un client + public int create(Salarie unSalarie) { + em.persist(unSalarie); // enregistre l’objet en base + // Force la synchro avec la base pour récupérer l’ID tout de suite + em.flush(); + return unSalarie.getId(); // l’ID est rempli automatiquement par JPA + } +}