From f6a1e9511a1ccb74c8ca729ba5690fa819f5c04c Mon Sep 17 00:00:00 2001 From: Thomas Rubini <74205383+ThomasRubini@users.noreply.github.com> Date: Mon, 6 Jun 2022 16:20:51 +0200 Subject: [PATCH] Recherches fonctionnelles --- src/main/java/fr/univ_amu/iut/dao/DAOUsage.java | 3 ++- .../java/fr/univ_amu/iut/dao/jpa/DAOUsageJPA.java | 13 ++++++++++--- src/main/java/fr/univ_amu/iut/model/Usage.java | 4 ++-- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/main/java/fr/univ_amu/iut/dao/DAOUsage.java b/src/main/java/fr/univ_amu/iut/dao/DAOUsage.java index 5b622a0..7b193f0 100644 --- a/src/main/java/fr/univ_amu/iut/dao/DAOUsage.java +++ b/src/main/java/fr/univ_amu/iut/dao/DAOUsage.java @@ -8,5 +8,6 @@ import fr.univ_amu.iut.model.Usage; import java.util.List; public interface DAOUsage extends DAO{ - List search(Thematique thematique, Discipline discipline, Academie academie); + List findByCriterias(Thematique thematique, Discipline discipline, Academie academie); + List findByName(String substring); } diff --git a/src/main/java/fr/univ_amu/iut/dao/jpa/DAOUsageJPA.java b/src/main/java/fr/univ_amu/iut/dao/jpa/DAOUsageJPA.java index 4b959a8..1c0a6cd 100644 --- a/src/main/java/fr/univ_amu/iut/dao/jpa/DAOUsageJPA.java +++ b/src/main/java/fr/univ_amu/iut/dao/jpa/DAOUsageJPA.java @@ -8,7 +8,6 @@ import fr.univ_amu.iut.model.Usage; import jakarta.persistence.EntityManager; import jakarta.persistence.TypedQuery; -import java.io.DataInput; import java.util.List; public class DAOUsageJPA extends DAOBaseClassJPA implements DAOUsage { @@ -31,11 +30,19 @@ public class DAOUsageJPA extends DAOBaseClassJPA implements DAOUsage { } @Override - public List search(Thematique thematique, Discipline discipline, Academie academie) { - TypedQuery query = entityManager.createNamedQuery("Usage.search", Usage.class); + public List findByCriterias(Thematique thematique, Discipline discipline, Academie academie) { + TypedQuery query = entityManager.createNamedQuery("Usage.findByCriterias", Usage.class); query.setParameter("thematique", thematique); query.setParameter("discipline", discipline); query.setParameter("academie", academie); return query.getResultList(); } + + + @Override + public List findByName(String substring) { + TypedQuery query = entityManager.createNamedQuery("Usage.findByName", Usage.class); + query.setParameter("substring", "%"+substring+"%"); + return query.getResultList(); + } } diff --git a/src/main/java/fr/univ_amu/iut/model/Usage.java b/src/main/java/fr/univ_amu/iut/model/Usage.java index 0603988..9591944 100644 --- a/src/main/java/fr/univ_amu/iut/model/Usage.java +++ b/src/main/java/fr/univ_amu/iut/model/Usage.java @@ -9,8 +9,8 @@ import java.util.List; @NamedQueries({ @NamedQuery(name = "Usage.findAll", query = "SELECT p FROM Usage p"), @NamedQuery(name = "Usage.findById", query = "SELECT p FROM Usage p WHERE p.id = :id"), - @NamedQuery(name = "Usage.findByName", query = "SELECT p FROM Usage p WHERE p.nom LIKE '%:id%'"), - @NamedQuery(name = "Usage.search", query = "SELECT p FROM Usage p WHERE" + + @NamedQuery(name = "Usage.findByName", query = "SELECT p FROM Usage p WHERE p.nom LIKE :substring"), + @NamedQuery(name = "Usage.findByCriterias", query = "SELECT p FROM Usage p WHERE" + "(:thematique is null or :thematique=p.thematique)" + "AND (:discipline is null or :discipline=p.discipline)"+ "AND (:academie is null or :academie=p.academie)"),