Recherches fonctionnelles

This commit is contained in:
Thomas Rubini 2022-06-06 16:20:51 +02:00
parent 843b3f3a87
commit f6a1e9511a
No known key found for this signature in database
GPG Key ID: C7D287C8C1CAC373
3 changed files with 14 additions and 6 deletions

View File

@ -8,5 +8,6 @@ import fr.univ_amu.iut.model.Usage;
import java.util.List;
public interface DAOUsage extends DAO<Usage>{
List<Usage> search(Thematique thematique, Discipline discipline, Academie academie);
List<Usage> findByCriterias(Thematique thematique, Discipline discipline, Academie academie);
List<Usage> findByName(String substring);
}

View File

@ -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<Usage> implements DAOUsage {
@ -31,11 +30,19 @@ public class DAOUsageJPA extends DAOBaseClassJPA<Usage> implements DAOUsage {
}
@Override
public List<Usage> search(Thematique thematique, Discipline discipline, Academie academie) {
TypedQuery<Usage> query = entityManager.createNamedQuery("Usage.search", Usage.class);
public List<Usage> findByCriterias(Thematique thematique, Discipline discipline, Academie academie) {
TypedQuery<Usage> 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<Usage> findByName(String substring) {
TypedQuery<Usage> query = entityManager.createNamedQuery("Usage.findByName", Usage.class);
query.setParameter("substring", "%"+substring+"%");
return query.getResultList();
}
}

View File

@ -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)"),