From ad339dd154269215d2bc20a4b4a3b5e26bdd2f13 Mon Sep 17 00:00:00 2001 From: Thomas Rubini <74205383+ThomasRubini@users.noreply.github.com> Date: Sat, 4 Jun 2022 21:20:38 +0200 Subject: [PATCH] =?UTF-8?q?Simplification=20du=20mod=C3=A8le=20relationnel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/fr/univ_amu/iut/dao/DAOUsage.java | 4 +-- .../iut/dao/jpa/DAOTypeActeurJPA.java | 28 ----------------- .../fr/univ_amu/iut/dao/jpa/DAOUsageJPA.java | 12 +++---- .../java/fr/univ_amu/iut/model/Acteur.java | 6 ++-- .../fr/univ_amu/iut/model/Discipline.java | 9 +++--- .../univ_amu/iut/model/RegionAcademique.java | 2 ++ .../java/fr/univ_amu/iut/model/Ressource.java | 19 ++++++++++-- .../fr/univ_amu/iut/model/Thematique.java | 20 +++++++++--- .../fr/univ_amu/iut/model/TypeActeur.java | 31 ------------------- .../fr/univ_amu/iut/model/TypeRessource.java | 23 -------------- .../iut/model/{Usages.java => Usage.java} | 24 +++++++------- .../univ_amu/iut/test/DAORessourceTest.java | 2 +- src/main/resources/META-INF/persistence.xml | 5 +-- 13 files changed, 67 insertions(+), 118 deletions(-) delete mode 100644 src/main/java/fr/univ_amu/iut/dao/jpa/DAOTypeActeurJPA.java delete mode 100644 src/main/java/fr/univ_amu/iut/model/TypeActeur.java delete mode 100644 src/main/java/fr/univ_amu/iut/model/TypeRessource.java rename src/main/java/fr/univ_amu/iut/model/{Usages.java => Usage.java} (86%) diff --git a/src/main/java/fr/univ_amu/iut/dao/DAOUsage.java b/src/main/java/fr/univ_amu/iut/dao/DAOUsage.java index f4311a5..24a649d 100644 --- a/src/main/java/fr/univ_amu/iut/dao/DAOUsage.java +++ b/src/main/java/fr/univ_amu/iut/dao/DAOUsage.java @@ -1,6 +1,6 @@ package fr.univ_amu.iut.dao; -import fr.univ_amu.iut.model.Usages; +import fr.univ_amu.iut.model.Usage; -public interface DAOUsage extends DAO{ +public interface DAOUsage extends DAO{ } diff --git a/src/main/java/fr/univ_amu/iut/dao/jpa/DAOTypeActeurJPA.java b/src/main/java/fr/univ_amu/iut/dao/jpa/DAOTypeActeurJPA.java deleted file mode 100644 index 291ac4a..0000000 --- a/src/main/java/fr/univ_amu/iut/dao/jpa/DAOTypeActeurJPA.java +++ /dev/null @@ -1,28 +0,0 @@ -package fr.univ_amu.iut.dao.jpa; - -import fr.univ_amu.iut.dao.DAO; -import fr.univ_amu.iut.model.TypeActeur; -import jakarta.persistence.EntityManager; -import jakarta.persistence.TypedQuery; - -import java.util.List; - -public class DAOTypeActeurJPA extends DAOBaseClassJPA implements DAO { - - public DAOTypeActeurJPA(EntityManager entityManager) { - super(entityManager); - } - - @Override - public List findAll() { - TypedQuery query = entityManager.createNamedQuery("TypeActeur.findAll", TypeActeur.class); - return query.getResultList(); - } - - @Override - public TypeActeur getById(int id) { - TypedQuery query = entityManager.createNamedQuery("TypeActeur.findById", TypeActeur.class); - query.setParameter("numEt", id); - return query.getSingleResult(); - } -} diff --git a/src/main/java/fr/univ_amu/iut/dao/jpa/DAOUsageJPA.java b/src/main/java/fr/univ_amu/iut/dao/jpa/DAOUsageJPA.java index 4e6f0c0..5101fe5 100644 --- a/src/main/java/fr/univ_amu/iut/dao/jpa/DAOUsageJPA.java +++ b/src/main/java/fr/univ_amu/iut/dao/jpa/DAOUsageJPA.java @@ -1,27 +1,27 @@ package fr.univ_amu.iut.dao.jpa; import fr.univ_amu.iut.dao.DAOUsage; -import fr.univ_amu.iut.model.Usages; +import fr.univ_amu.iut.model.Usage; import jakarta.persistence.EntityManager; import jakarta.persistence.TypedQuery; import java.util.List; -public class DAOUsageJPA extends DAOBaseClassJPA implements DAOUsage { +public class DAOUsageJPA extends DAOBaseClassJPA implements DAOUsage { public DAOUsageJPA(EntityManager entityManager) { super(entityManager); } @Override - public List findAll() { - TypedQuery query = entityManager.createNamedQuery("Usage.findAll", Usages.class); + public List findAll() { + TypedQuery query = entityManager.createNamedQuery("Usage.findAll", Usage.class); return query.getResultList(); } @Override - public Usages getById(int id) { - TypedQuery query = entityManager.createNamedQuery("Usage.findById", Usages.class); + public Usage getById(int id) { + TypedQuery query = entityManager.createNamedQuery("Usage.findById", Usage.class); query.setParameter("numEt", id); return query.getSingleResult(); } diff --git a/src/main/java/fr/univ_amu/iut/model/Acteur.java b/src/main/java/fr/univ_amu/iut/model/Acteur.java index 24d79ba..ca8606e 100644 --- a/src/main/java/fr/univ_amu/iut/model/Acteur.java +++ b/src/main/java/fr/univ_amu/iut/model/Acteur.java @@ -12,11 +12,11 @@ public class Acteur { @GeneratedValue int id; - String type; - String identite; - public Acteur(String type, String identite) { + String type; + + public Acteur(String identite, String type) { this.type = type; this.identite = identite; } diff --git a/src/main/java/fr/univ_amu/iut/model/Discipline.java b/src/main/java/fr/univ_amu/iut/model/Discipline.java index 8436477..8248d1e 100644 --- a/src/main/java/fr/univ_amu/iut/model/Discipline.java +++ b/src/main/java/fr/univ_amu/iut/model/Discipline.java @@ -1,9 +1,6 @@ package fr.univ_amu.iut.model; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.Id; -import jakarta.persistence.Transient; +import jakarta.persistence.*; import java.util.ArrayList; import java.util.List; @@ -11,7 +8,7 @@ import java.util.List; @Entity public class Discipline { - private static List INSTANCES = new ArrayList<>(); + private static final List INSTANCES = new ArrayList<>(); @Transient public static Discipline Toutes = new Discipline("Toutes disciplines"); @@ -33,6 +30,8 @@ public class Discipline { @Id @GeneratedValue int id; + + @Column(unique = true) String nom; public Discipline() { diff --git a/src/main/java/fr/univ_amu/iut/model/RegionAcademique.java b/src/main/java/fr/univ_amu/iut/model/RegionAcademique.java index 09fb25f..74bdfb3 100644 --- a/src/main/java/fr/univ_amu/iut/model/RegionAcademique.java +++ b/src/main/java/fr/univ_amu/iut/model/RegionAcademique.java @@ -50,6 +50,8 @@ public class RegionAcademique { @Id @GeneratedValue int id; + + @Column(unique = true) String nom; public RegionAcademique() { diff --git a/src/main/java/fr/univ_amu/iut/model/Ressource.java b/src/main/java/fr/univ_amu/iut/model/Ressource.java index 030cf1f..3dfd19a 100644 --- a/src/main/java/fr/univ_amu/iut/model/Ressource.java +++ b/src/main/java/fr/univ_amu/iut/model/Ressource.java @@ -2,6 +2,7 @@ package fr.univ_amu.iut.model; import jakarta.persistence.*; +import java.net.MalformedURLException; import java.net.URL; @NamedQueries({ @@ -16,10 +17,24 @@ public class Ressource { String nomRessource; - String typeRessource; URL lienRessource; - public Ressource(URL lienRessource, String nomRessource, String typeRessource) { + String typeRessource; + + private static URL convertUrl(String url){ + try{ + return new URL(url); + }catch(MalformedURLException e){ + e.printStackTrace(); + return null; + } + } + + public Ressource(String nomRessource, String lienRessource, String typeRessource) { + this(nomRessource, convertUrl(lienRessource), typeRessource); + } + public Ressource(String nomRessource, URL lienRessource, String typeRessource) { + this.nomRessource = nomRessource; this.typeRessource = typeRessource; this.lienRessource = lienRessource; } diff --git a/src/main/java/fr/univ_amu/iut/model/Thematique.java b/src/main/java/fr/univ_amu/iut/model/Thematique.java index 3eeaf9a..4fdf27b 100644 --- a/src/main/java/fr/univ_amu/iut/model/Thematique.java +++ b/src/main/java/fr/univ_amu/iut/model/Thematique.java @@ -1,12 +1,18 @@ package fr.univ_amu.iut.model; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.Id; -import jakarta.persistence.Transient; +import jakarta.persistence.*; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; @Entity public class Thematique { + + + private final static List INSTANCES = new ArrayList<>(); + @Transient public static Thematique ClasseInversee= new Thematique("Classe inversée"); @Transient @@ -55,6 +61,8 @@ public class Thematique { @Id @GeneratedValue int id; + + @Column(unique = true) String nom; public String getNom() { @@ -63,11 +71,15 @@ public class Thematique { public Thematique(String nom) { this.nom = nom; + INSTANCES.add(this); } public Thematique() { } + public static List toutes(){ + return INSTANCES; + } @Override public String toString() { diff --git a/src/main/java/fr/univ_amu/iut/model/TypeActeur.java b/src/main/java/fr/univ_amu/iut/model/TypeActeur.java deleted file mode 100644 index 734454a..0000000 --- a/src/main/java/fr/univ_amu/iut/model/TypeActeur.java +++ /dev/null @@ -1,31 +0,0 @@ -package fr.univ_amu.iut.model; - -import jakarta.persistence.*; - -@NamedQueries({ - @NamedQuery(name = "TypeActeur.findAll", query = "SELECT p FROM TypeActeur p"), - @NamedQuery(name = "TypeActeur.findById", query = "SELECT p FROM TypeActeur p WHERE p.id = :id"), -}) -@Entity -public class TypeActeur { - @Id - @GeneratedValue - int id; - String nom; - - public TypeActeur(String nom) { - this.nom = nom; - } - - public TypeActeur() { - - } - - public String getNom() { - return nom; - } - - public void setNom(String nom) { - this.nom = nom; - } -} diff --git a/src/main/java/fr/univ_amu/iut/model/TypeRessource.java b/src/main/java/fr/univ_amu/iut/model/TypeRessource.java deleted file mode 100644 index f9ffd06..0000000 --- a/src/main/java/fr/univ_amu/iut/model/TypeRessource.java +++ /dev/null @@ -1,23 +0,0 @@ -package fr.univ_amu.iut.model; - -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.Id; - -@Entity -public class TypeRessource { - @Id - @GeneratedValue - int id; - String nom; - - public TypeRessource(String nom) { - this.nom = nom; - } - - public TypeRessource() {} - - public String getNom() { - return nom; - } -} diff --git a/src/main/java/fr/univ_amu/iut/model/Usages.java b/src/main/java/fr/univ_amu/iut/model/Usage.java similarity index 86% rename from src/main/java/fr/univ_amu/iut/model/Usages.java rename to src/main/java/fr/univ_amu/iut/model/Usage.java index f14ba34..9607fd0 100644 --- a/src/main/java/fr/univ_amu/iut/model/Usages.java +++ b/src/main/java/fr/univ_amu/iut/model/Usage.java @@ -6,11 +6,13 @@ import java.util.ArrayList; import java.util.List; @NamedQueries({ - @NamedQuery(name = "Usage.findAll", query = "SELECT p FROM Usages p"), - @NamedQuery(name = "Usage.findById", query = "SELECT p FROM Usages p WHERE p.id = :id"), + @NamedQuery(name = "Usage.findAll", query = "SELECT p FROM Usage p"), + @NamedQuery(name = "Usage.findById", query = "SELECT p FROM Usage p WHERE p.id = :id"), }) + @Entity -public class Usages { +@Table(name="\"USAGE\"") +public class Usage { @Id @GeneratedValue int id; @@ -34,12 +36,12 @@ public class Usages { @OneToMany(cascade = CascadeType.ALL) List ressources = new ArrayList<>(); - @OneToOne(cascade = CascadeType.ALL) - Acteur acteur; + @OneToMany(cascade = CascadeType.ALL) + List acteurs = new ArrayList<>(); String commentaire; - public Usages() { + public Usage() { } public String getNom() { @@ -98,12 +100,12 @@ public class Usages { this.ressources.add(ressource); } - public Acteur getActeur() { - return acteur; + public List getActeurs() { + return acteurs; } - public void setActeur(Acteur acteur) { - this.acteur = acteur; + public void addActeur(Acteur acteur) { + this.acteurs.add(acteur); } public String getCommentaire() { @@ -126,7 +128,7 @@ public class Usages { ", niveau=" + niveau + ", academie=" + academie + ", ressources=" + ressources + - ", acteur=" + acteur + + ", acteurs=" + acteurs + ", commentaire='" + commentaire + '\'' + '}'; } diff --git a/src/main/java/fr/univ_amu/iut/test/DAORessourceTest.java b/src/main/java/fr/univ_amu/iut/test/DAORessourceTest.java index b416eb8..4323b35 100644 --- a/src/main/java/fr/univ_amu/iut/test/DAORessourceTest.java +++ b/src/main/java/fr/univ_amu/iut/test/DAORessourceTest.java @@ -24,7 +24,7 @@ public class DAORessourceTest implements DAORessource { } catch (MalformedURLException e) { e.printStackTrace(); } - Ressource ressource = new Ressource(url, "google", "site web"); + Ressource ressource = new Ressource("google", url, "site web"); liste.add(ressource); } return liste; diff --git a/src/main/resources/META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml index 27fa393..27c2fb1 100644 --- a/src/main/resources/META-INF/persistence.xml +++ b/src/main/resources/META-INF/persistence.xml @@ -8,8 +8,9 @@ - - + + +