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;
|
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 fr.univ_amu.iut.model.Usage;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public interface DAOUsage extends DAO<Usage>{
|
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.*;
|
||||||
import fr.univ_amu.iut.dao.factory.DAOFactory;
|
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.EntityManager;
|
||||||
import jakarta.persistence.EntityManagerFactory;
|
import jakarta.persistence.EntityManagerFactory;
|
||||||
import jakarta.persistence.Persistence;
|
import jakarta.persistence.Persistence;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
|
||||||
public class DAOFactoryJPA implements DAOFactory {
|
public class DAOFactoryJPA implements DAOFactory {
|
||||||
|
|
||||||
private EntityManager entityManager;
|
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() {
|
public EntityManager getEntityManager() {
|
||||||
if(entityManager == null){
|
if(entityManager == null){
|
||||||
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("gestionUsagesPU");
|
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("gestionUsagesPU");
|
||||||
|
@ -22,7 +22,7 @@ public class DAOThematiqueJPA extends DAOBaseClassJPA<Thematique> implements DAO
|
|||||||
@Override
|
@Override
|
||||||
public Thematique getById(int id) {
|
public Thematique getById(int id) {
|
||||||
TypedQuery<Thematique> query = entityManager.createNamedQuery("Thematique.findById", Thematique.class);
|
TypedQuery<Thematique> query = entityManager.createNamedQuery("Thematique.findById", Thematique.class);
|
||||||
query.setParameter("numEt", id);
|
query.setParameter("id", id);
|
||||||
return query.getSingleResult();
|
return query.getSingleResult();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,14 @@
|
|||||||
package fr.univ_amu.iut.dao.jpa;
|
package fr.univ_amu.iut.dao.jpa;
|
||||||
|
|
||||||
import fr.univ_amu.iut.dao.DAOUsage;
|
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 fr.univ_amu.iut.model.Usage;
|
||||||
import jakarta.persistence.EntityManager;
|
import jakarta.persistence.EntityManager;
|
||||||
import jakarta.persistence.TypedQuery;
|
import jakarta.persistence.TypedQuery;
|
||||||
|
|
||||||
|
import java.io.DataInput;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class DAOUsageJPA extends DAOBaseClassJPA<Usage> implements DAOUsage {
|
public class DAOUsageJPA extends DAOBaseClassJPA<Usage> implements DAOUsage {
|
||||||
@ -25,4 +29,13 @@ public class DAOUsageJPA extends DAOBaseClassJPA<Usage> implements DAOUsage {
|
|||||||
query.setParameter("numEt", id);
|
query.setParameter("numEt", id);
|
||||||
return query.getSingleResult();
|
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