Merge branch 'main' of gitpro:IUTInfoAix-R202-2022/sae-concombre into liaison
Ajout des nouvelles fonctionnalités de la DAO
This commit is contained in:
commit
fda0ca493b
@ -1,6 +1,13 @@
|
||||
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> findByCriterias(Thematique thematique, Discipline discipline, Academie academie);
|
||||
List<Usage> findByName(String substring);
|
||||
}
|
||||
|
@ -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,6 +1,9 @@
|
||||
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;
|
||||
@ -25,4 +28,21 @@ public class DAOUsageJPA extends DAOBaseClassJPA<Usage> implements DAOUsage {
|
||||
query.setParameter("numEt", id);
|
||||
return query.getSingleResult();
|
||||
}
|
||||
|
||||
@Override
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package fr.univ_amu.iut.model;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@ -11,7 +12,7 @@ import java.util.Map;
|
||||
@NamedQuery(name = "Academie.findByCode", query = "SELECT p FROM Academie p WHERE p.code = :acaCode"),
|
||||
})
|
||||
@Entity
|
||||
public class Academie {
|
||||
public class Academie implements Serializable {
|
||||
private final static HashMap<String, Academie> INSTANCES = new HashMap<>();
|
||||
@Transient
|
||||
public static Academie Mayotte = new Academie("MY", "Académie de Mayotte", RegionAcademique.Mayotte);
|
||||
@ -125,4 +126,19 @@ public class Academie {
|
||||
", regionAcademique=" + regionAcademique +
|
||||
'}';
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
|
||||
Academie academie = (Academie) o;
|
||||
|
||||
return code.equals(academie.code);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return code.hashCode();
|
||||
}
|
||||
}
|
@ -2,12 +2,14 @@ package fr.univ_amu.iut.model;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@NamedQueries({
|
||||
@NamedQuery(name = "Acteur.findAll", query = "SELECT p FROM Acteur p"),
|
||||
@NamedQuery(name = "Acteur.findById", query = "SELECT p FROM Acteur p WHERE p.id = :id"),
|
||||
})
|
||||
@Entity
|
||||
public class Acteur {
|
||||
public class Acteur implements Serializable {
|
||||
@Id
|
||||
@GeneratedValue
|
||||
int id;
|
||||
@ -52,4 +54,24 @@ public class Acteur {
|
||||
", identite='" + identite + '\'' +
|
||||
'}';
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
|
||||
Acteur acteur = (Acteur) o;
|
||||
|
||||
if (id != acteur.id) return false;
|
||||
if (!identite.equals(acteur.identite)) return false;
|
||||
return type.equals(acteur.type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int result = id;
|
||||
result = 31 * result + identite.hashCode();
|
||||
result = 31 * result + type.hashCode();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
@ -2,11 +2,16 @@ package fr.univ_amu.iut.model;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@NamedQueries({
|
||||
@NamedQuery(name = "Discipline.findAll", query = "SELECT p FROM Discipline p"),
|
||||
@NamedQuery(name = "Discipline.findById", query = "SELECT p FROM Discipline p WHERE p.id = :id"),
|
||||
})
|
||||
@Entity
|
||||
public class Discipline {
|
||||
public class Discipline implements Serializable {
|
||||
|
||||
private static final List<Discipline> INSTANCES = new ArrayList<>();
|
||||
|
||||
@ -44,7 +49,7 @@ public class Discipline {
|
||||
}
|
||||
|
||||
public static List<Discipline> toutes() {
|
||||
return INSTANCES;
|
||||
return new ArrayList<>(INSTANCES);
|
||||
}
|
||||
|
||||
public static Discipline getById(int id){
|
||||
@ -70,4 +75,22 @@ public class Discipline {
|
||||
", nom='" + nom + '\'' +
|
||||
'}';
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
|
||||
Discipline that = (Discipline) o;
|
||||
|
||||
if (id != that.id) return false;
|
||||
return nom.equals(that.nom);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int result = id;
|
||||
result = 31 * result + nom.hashCode();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
@ -18,4 +18,12 @@ public enum Niveau {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Niveau{" +
|
||||
"nom='" + nom + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
@ -2,11 +2,16 @@ package fr.univ_amu.iut.model;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@NamedQueries({
|
||||
@NamedQuery(name = "RegionAcademique.findAll", query = "SELECT p FROM RegionAcademique p"),
|
||||
@NamedQuery(name = "RegionAcademique.findById", query = "SELECT p FROM RegionAcademique p WHERE p.id = :id"),
|
||||
})
|
||||
@Entity
|
||||
public class RegionAcademique {
|
||||
public class RegionAcademique implements Serializable {
|
||||
|
||||
private static List<RegionAcademique> INSTANCES = new ArrayList<>();
|
||||
|
||||
@ -80,4 +85,23 @@ public class RegionAcademique {
|
||||
public String getNom() {
|
||||
return nom;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
|
||||
RegionAcademique that = (RegionAcademique) o;
|
||||
|
||||
if (id != that.id) return false;
|
||||
return nom.equals(that.nom);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int result = id;
|
||||
result = 31 * result + nom.hashCode();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package fr.univ_amu.iut.model;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
|
||||
@ -10,7 +11,7 @@ import java.net.URL;
|
||||
@NamedQuery(name = "Ressource.findById", query = "SELECT p FROM Ressource p WHERE p.id = :id"),
|
||||
})
|
||||
@Entity
|
||||
public class Ressource {
|
||||
public class Ressource implements Serializable {
|
||||
@Id
|
||||
@GeneratedValue
|
||||
int id;
|
||||
@ -65,4 +66,19 @@ public class Ressource {
|
||||
", lienRessource=" + lienRessource +
|
||||
'}';
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
|
||||
Ressource ressource = (Ressource) o;
|
||||
|
||||
return id == ressource.id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return id;
|
||||
}
|
||||
}
|
||||
|
@ -2,13 +2,18 @@ package fr.univ_amu.iut.model;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@NamedQueries({
|
||||
@NamedQuery(name = "Thematique.findAll", query = "SELECT p FROM Thematique p"),
|
||||
@NamedQuery(name = "Thematique.findById", query = "SELECT p FROM Thematique p WHERE p.id = :id"),
|
||||
})
|
||||
@Entity
|
||||
public class Thematique {
|
||||
public class Thematique implements Serializable {
|
||||
|
||||
|
||||
private final static List<Thematique> INSTANCES = new ArrayList<>();
|
||||
@ -88,4 +93,22 @@ public class Thematique {
|
||||
", nom='" + nom + '\'' +
|
||||
'}';
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
|
||||
Thematique that = (Thematique) o;
|
||||
|
||||
if (id != that.id) return false;
|
||||
return nom.equals(that.nom);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int result = id;
|
||||
result = 31 * result + nom.hashCode();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
@ -2,17 +2,23 @@ package fr.univ_amu.iut.model;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
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 :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)"),
|
||||
})
|
||||
|
||||
@Entity
|
||||
@Table(name="\"USAGE\"")
|
||||
public class Usage {
|
||||
public class Usage implements Serializable {
|
||||
@Id
|
||||
@GeneratedValue
|
||||
int id;
|
||||
@ -132,4 +138,19 @@ public class Usage {
|
||||
", commentaire='" + commentaire + '\'' +
|
||||
'}';
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
|
||||
Usage usage = (Usage) o;
|
||||
|
||||
return id == usage.id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return id;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user