Merge pull request #8 from IUTInfoAix-R202-2022/dao_upgrade
Mise a jour du DAO pour le rendre utilisable avec l'UI
This commit is contained in:
commit
eea1d628e8
@ -1,6 +1,13 @@
|
|||||||
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> 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.*;
|
||||||
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,6 +1,9 @@
|
|||||||
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;
|
||||||
@ -25,4 +28,21 @@ 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> 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 jakarta.persistence.*;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
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"),
|
@NamedQuery(name = "Academie.findByCode", query = "SELECT p FROM Academie p WHERE p.code = :acaCode"),
|
||||||
})
|
})
|
||||||
@Entity
|
@Entity
|
||||||
public class Academie {
|
public class Academie implements Serializable {
|
||||||
private final static HashMap<String, Academie> INSTANCES = new HashMap<>();
|
private final static HashMap<String, Academie> INSTANCES = new HashMap<>();
|
||||||
@Transient
|
@Transient
|
||||||
public static Academie Mayotte = new Academie("MY", "Académie de Mayotte", RegionAcademique.Mayotte);
|
public static Academie Mayotte = new Academie("MY", "Académie de Mayotte", RegionAcademique.Mayotte);
|
||||||
@ -125,4 +126,19 @@ public class Academie {
|
|||||||
", regionAcademique=" + regionAcademique +
|
", 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 jakarta.persistence.*;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
@NamedQueries({
|
@NamedQueries({
|
||||||
@NamedQuery(name = "Acteur.findAll", query = "SELECT p FROM Acteur p"),
|
@NamedQuery(name = "Acteur.findAll", query = "SELECT p FROM Acteur p"),
|
||||||
@NamedQuery(name = "Acteur.findById", query = "SELECT p FROM Acteur p WHERE p.id = :id"),
|
@NamedQuery(name = "Acteur.findById", query = "SELECT p FROM Acteur p WHERE p.id = :id"),
|
||||||
})
|
})
|
||||||
@Entity
|
@Entity
|
||||||
public class Acteur {
|
public class Acteur implements Serializable {
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue
|
@GeneratedValue
|
||||||
int id;
|
int id;
|
||||||
@ -52,4 +54,24 @@ public class Acteur {
|
|||||||
", identite='" + identite + '\'' +
|
", 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 jakarta.persistence.*;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
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
|
@Entity
|
||||||
public class Discipline {
|
public class Discipline implements Serializable {
|
||||||
|
|
||||||
private static final List<Discipline> INSTANCES = new ArrayList<>();
|
private static final List<Discipline> INSTANCES = new ArrayList<>();
|
||||||
|
|
||||||
@ -44,7 +49,7 @@ public class Discipline {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static List<Discipline> toutes() {
|
public static List<Discipline> toutes() {
|
||||||
return INSTANCES;
|
return new ArrayList<>(INSTANCES);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Discipline getById(int id){
|
public static Discipline getById(int id){
|
||||||
@ -70,4 +75,22 @@ public class Discipline {
|
|||||||
", nom='" + nom + '\'' +
|
", 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;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Niveau{" +
|
||||||
|
"nom='" + nom + '\'' +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,11 +2,16 @@ package fr.univ_amu.iut.model;
|
|||||||
|
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
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
|
@Entity
|
||||||
public class RegionAcademique {
|
public class RegionAcademique implements Serializable {
|
||||||
|
|
||||||
private static List<RegionAcademique> INSTANCES = new ArrayList<>();
|
private static List<RegionAcademique> INSTANCES = new ArrayList<>();
|
||||||
|
|
||||||
@ -80,4 +85,23 @@ public class RegionAcademique {
|
|||||||
public String getNom() {
|
public String getNom() {
|
||||||
return nom;
|
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 jakarta.persistence.*;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
import java.net.MalformedURLException;
|
import java.net.MalformedURLException;
|
||||||
import java.net.URL;
|
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"),
|
@NamedQuery(name = "Ressource.findById", query = "SELECT p FROM Ressource p WHERE p.id = :id"),
|
||||||
})
|
})
|
||||||
@Entity
|
@Entity
|
||||||
public class Ressource {
|
public class Ressource implements Serializable {
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue
|
@GeneratedValue
|
||||||
int id;
|
int id;
|
||||||
@ -65,4 +66,19 @@ public class Ressource {
|
|||||||
", lienRessource=" + lienRessource +
|
", 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 jakarta.persistence.*;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
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
|
@Entity
|
||||||
public class Thematique {
|
public class Thematique implements Serializable {
|
||||||
|
|
||||||
|
|
||||||
private final static List<Thematique> INSTANCES = new ArrayList<>();
|
private final static List<Thematique> INSTANCES = new ArrayList<>();
|
||||||
@ -88,4 +93,22 @@ public class Thematique {
|
|||||||
", nom='" + nom + '\'' +
|
", 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 jakarta.persistence.*;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@NamedQueries({
|
@NamedQueries({
|
||||||
@NamedQuery(name = "Usage.findAll", query = "SELECT p FROM Usage p"),
|
@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.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
|
@Entity
|
||||||
@Table(name="\"USAGE\"")
|
@Table(name="\"USAGE\"")
|
||||||
public class Usage {
|
public class Usage implements Serializable {
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue
|
@GeneratedValue
|
||||||
int id;
|
int id;
|
||||||
@ -132,4 +138,19 @@ public class Usage {
|
|||||||
", commentaire='" + commentaire + '\'' +
|
", 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