ajout de la recherche côté JPA +
This commit is contained in:
parent
c5c530d52c
commit
843b3f3a87
@ -1,6 +1,12 @@
|
||||
package fr.univ_amu.iut.dao;
|
||||
|
||||
import fr.univ_amu.iut.model.Academie;
|
||||
import fr.univ_amu.iut.model.Discipline;
|
||||
import fr.univ_amu.iut.model.Thematique;
|
||||
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);
|
||||
}
|
||||
|
@ -2,14 +2,46 @@ package fr.univ_amu.iut.dao.jpa;
|
||||
|
||||
import fr.univ_amu.iut.dao.*;
|
||||
import fr.univ_amu.iut.dao.factory.DAOFactory;
|
||||
import fr.univ_amu.iut.model.Academie;
|
||||
import fr.univ_amu.iut.model.Discipline;
|
||||
import fr.univ_amu.iut.model.RegionAcademique;
|
||||
import fr.univ_amu.iut.model.Thematique;
|
||||
import jakarta.persistence.EntityManager;
|
||||
import jakarta.persistence.EntityManagerFactory;
|
||||
import jakarta.persistence.Persistence;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
||||
public class DAOFactoryJPA implements DAOFactory {
|
||||
|
||||
private EntityManager entityManager;
|
||||
|
||||
|
||||
// Pas sûr de ou initialiser la base de données
|
||||
/*
|
||||
On part du principe que les données dans la base de données sont inconnues :
|
||||
certaines données peuvent être insérées et d'autres non. Nous faisons attention aux erreurs
|
||||
Nous essayons d'être persistents aux erreurs
|
||||
*/
|
||||
|
||||
|
||||
private <T> void insertAllHelper(DAO<T> dao, Collection<T> list){
|
||||
if(dao.findAll().size()==0){
|
||||
entityManager.getTransaction().begin();
|
||||
list.forEach(obj -> entityManager.persist(obj));
|
||||
entityManager.getTransaction().commit();
|
||||
}
|
||||
}
|
||||
|
||||
public DAOFactoryJPA(){
|
||||
|
||||
insertAllHelper(createDAORegionAcademique(), RegionAcademique.toutes());
|
||||
insertAllHelper(createDAOAcademie(), Academie.toutes());
|
||||
insertAllHelper(createDAOThematique(), Thematique.toutes());
|
||||
insertAllHelper(createDAODiscipline(), Discipline.toutes());
|
||||
}
|
||||
|
||||
public EntityManager getEntityManager() {
|
||||
if(entityManager == null){
|
||||
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("gestionUsagesPU");
|
||||
|
@ -22,7 +22,7 @@ public class DAOThematiqueJPA extends DAOBaseClassJPA<Thematique> implements DAO
|
||||
@Override
|
||||
public Thematique getById(int id) {
|
||||
TypedQuery<Thematique> query = entityManager.createNamedQuery("Thematique.findById", Thematique.class);
|
||||
query.setParameter("numEt", id);
|
||||
query.setParameter("id", id);
|
||||
return query.getSingleResult();
|
||||
}
|
||||
}
|
||||
|
@ -1,10 +1,14 @@
|
||||
package fr.univ_amu.iut.dao.jpa;
|
||||
|
||||
import fr.univ_amu.iut.dao.DAOUsage;
|
||||
import fr.univ_amu.iut.model.Academie;
|
||||
import fr.univ_amu.iut.model.Discipline;
|
||||
import fr.univ_amu.iut.model.Thematique;
|
||||
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 {
|
||||
@ -25,4 +29,13 @@ public class DAOUsageJPA extends DAOBaseClassJPA<Usage> implements DAOUsage {
|
||||
query.setParameter("numEt", id);
|
||||
return query.getSingleResult();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Usage> search(Thematique thematique, Discipline discipline, Academie academie) {
|
||||
TypedQuery<Usage> query = entityManager.createNamedQuery("Usage.search", Usage.class);
|
||||
query.setParameter("thematique", thematique);
|
||||
query.setParameter("discipline", discipline);
|
||||
query.setParameter("academie", academie);
|
||||
return query.getResultList();
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user