diff --git a/data/test.lck b/data/test.lck new file mode 100644 index 0000000..5e6689b Binary files /dev/null and b/data/test.lck differ diff --git a/data/test.log b/data/test.log index dd542e3..34d4186 100644 --- a/data/test.log +++ b/data/test.log @@ -1,3 +1,23 @@ /*C1*/SET SCHEMA SYSTEM_LOBS INSERT INTO BLOCKS VALUES(0,2147483647,0) COMMIT +/*C2*/SET SCHEMA PUBLIC +create sequence Quizz_SEQ start with 1 increment by 50 +create sequence Reponse_SEQ start with 1 increment by 50 +create table Choix (Choix_Id integer not null, choix varchar(255) array, primary key (Choix_Id)) +create table Question (bonne_reponse integer unique, id integer generated by default as identity (start with 1), primary key (id)) +create table Quizz (id integer not null, id_utilisateur integer, session_codePIN integer, primary key (id)) +create table Reponse (id integer not null, question_id integer unique, Type_reponse varchar(31) not null, reponses varchar(255) array, primary key (id)) +create table ReponseCourte (RC_Id integer not null, value varchar(255), primary key (RC_Id)) +create table Session (codePIN integer generated by default as identity (start with 1), theme varchar(255), primary key (codePIN)) +create table Utilisateur (id integer generated by default as identity (start with 1), email varchar(255) unique, name varchar(255), password varchar(255), primary key (id)) +create table utilisateur_session (session_pin integer not null, utilisateur_id integer not null) +alter table Choix add constraint FK15f4fgmtoco1tg4rra1vualr5 foreign key (Choix_Id) references Reponse +alter table Question add constraint FKht8pe2o5v6sff88mr3pbh40f6 foreign key (bonne_reponse) references Reponse +alter table Quizz add constraint FK3d0s5ih3homovqibbm72mvn2j foreign key (session_codePIN) references Session +alter table Quizz add constraint FKlsvn0pvga68ummfyividlwggh foreign key (id_utilisateur) references Utilisateur +alter table Reponse add constraint FKgdr6si626nqixg8qyfx6s0pjl foreign key (question_id) references Question +alter table ReponseCourte add constraint FKocs5t60ov4kwoom69761ay7qd foreign key (RC_Id) references Reponse +alter table utilisateur_session add constraint FK8x6kccp60a5ki9i4wihglhgqm foreign key (session_pin) references Session +alter table utilisateur_session add constraint FK4f5dgiwf12kd9vrhsc6s4x2pk foreign key (utilisateur_id) references Utilisateur +DISCONNECT diff --git a/data/test.properties b/data/test.properties index bc2283d..a15cc8e 100644 --- a/data/test.properties +++ b/data/test.properties @@ -1,5 +1,5 @@ #HSQL Database Engine 2.7.2 -#Wed Sep 17 12:17:40 CEST 2025 +#Fri Sep 19 12:55:24 CEST 2025 modified=yes tx_timestamp=1 version=2.7.2 diff --git a/data/test.script b/data/test.script index 573c9a0..35af71d 100644 --- a/data/test.script +++ b/data/test.script @@ -1,4 +1,4 @@ -SET DATABASE UNIQUE NAME HSQLDB99572E0E4E +SET DATABASE UNIQUE NAME HSQLDB99619D51D4 SET DATABASE DEFAULT RESULT MEMORY ROWS 0 SET DATABASE EVENT LOG LEVEL 0 SET DATABASE TRANSACTION CONTROL LOCKS diff --git a/src/main/java/DAO/ReponseDAO.java b/src/main/java/DAO/ReponseDAO.java index 59bb473..4a5e4e0 100644 --- a/src/main/java/DAO/ReponseDAO.java +++ b/src/main/java/DAO/ReponseDAO.java @@ -1,5 +1,9 @@ package DAO; +import java.util.List; + +import jakarta.persistence.EntityTransaction; +import jakarta.persistence.Query; import metier.Reponse; public class ReponseDAO extends GenericDAOImpl { @@ -8,4 +12,13 @@ public class ReponseDAO extends GenericDAOImpl { this.setClass(Reponse.class); } + /*public List getGoodResponses(){ + EntityTransaction t=em.getTransaction(); + t.begin(); + Query query=em.createQuery("select r from Reponse r where r.reponses"); + List lString=query.getResultList(); + t.commit(); + return lString; + }*/ + } diff --git a/src/main/java/DAO/SessionDAO.java b/src/main/java/DAO/SessionDAO.java index a7bb970..8440b6c 100644 --- a/src/main/java/DAO/SessionDAO.java +++ b/src/main/java/DAO/SessionDAO.java @@ -4,6 +4,7 @@ package DAO; import jakarta.persistence.EntityTransaction; import jakarta.persistence.Query; import metier.Session; +import metier.Utilisateur; import java.util.List; @@ -13,6 +14,9 @@ public class SessionDAO extends GenericDAOImpl { this.setClass(Session.class); } + + + public List findByTheme(String theme){ EntityTransaction t=em.getTransaction(); t.begin(); diff --git a/src/main/java/jpa/JpaTest.java b/src/main/java/jpa/JpaTest.java index 97e6162..226bcc8 100644 --- a/src/main/java/jpa/JpaTest.java +++ b/src/main/java/jpa/JpaTest.java @@ -5,6 +5,7 @@ import jakarta.persistence.EntityManager; import jakarta.persistence.EntityTransaction; import metier.*; +import java.util.ArrayList; import java.util.List; public class JpaTest { @@ -27,7 +28,9 @@ public class JpaTest { tx.begin(); try { test.create_user_test(); - test.list_utilisateur(); + test.create_session_test(); + //test.list_utilisateur(); + test.list_session(); } catch (Exception e) { e.printStackTrace(); } @@ -49,15 +52,49 @@ public class JpaTest { Utilisateur utilisateur2 = new Utilisateur(); utilisateur2.setName("Rochas"); + manager.persist(utilisateur1); manager.persist(utilisateur2); + } + + } + + private void create_session_test() { + int numUser = manager.createQuery("SELECT u FROM Session u", Session.class).getResultList().size(); + if (numUser == 0) { + //Utilisateur + + + Session session1 = new Session(); + session1.setCodePIN(1703); + session1.setTheme("Inphormatik"); + session1.setQuizzs(new ArrayList<>()); + + List ulist = manager.createQuery("select user from Utilisateur user").getResultList(); + session1.setUtilisateurs(ulist); + + + manager.persist(session1); } } + private void list_utilisateur(){ List result_utilisatuer_list= manager.createQuery("select u from Utilisateur u", Utilisateur.class).getResultList(); for (Utilisateur u : result_utilisatuer_list) { System.out.println(u.getId() + " " + u.getName() +" "+ u.getEmail()); } } + + private void list_session(){ + List result_session_list= manager.createQuery("select s from Session s", Session.class).getResultList(); + for (Session s : result_session_list) { + System.out.println(s.getCodePIN() + " " + s.getTheme()); + for(Utilisateur u : s.getUtilisateurs()){ + System.out.println(u.getId() + " " + u.getName() +" "+ u.getEmail()); + } + } + } + + } diff --git a/src/main/java/metier/Session.java b/src/main/java/metier/Session.java index 983ac21..97d7a68 100644 --- a/src/main/java/metier/Session.java +++ b/src/main/java/metier/Session.java @@ -2,14 +2,15 @@ package metier; import java.io.Serializable; import java.util.ArrayList; +import java.util.List; import jakarta.persistence.*; @Entity public class Session implements Serializable { private int codePIN; - private ArrayList quizzs; - private ArrayList utilisateurs; + private List quizzs; + private List utilisateurs; private String theme; public Session(){ @@ -25,29 +26,33 @@ public class Session implements Serializable { return this.codePIN; } - public void setQuizzs(ArrayList quizzs){ + public void setQuizzs(List quizzs){ this.quizzs = quizzs; } @OneToMany(mappedBy="session") - public ArrayList getQuizzs(){ + public List getQuizzs(){ return this.quizzs; } - public void setUtilisateurs(ArrayList utilisateurs){ + public void setUtilisateurs(List utilisateurs){ this.utilisateurs = utilisateurs; } @ManyToMany(mappedBy = "session") - public ArrayList getUtilisateurs() { + public List getUtilisateurs() { return this.utilisateurs; } - private String getTheme(){ + public String getTheme(){ return this.theme; } - private void setTheme(String theme){ + public void setTheme(String theme){ this.theme = theme; } + + public void addUser(Utilisateur user){ + this.utilisateurs.add(user); + } } \ No newline at end of file diff --git a/target/classes/DAO/ReponseDAO.class b/target/classes/DAO/ReponseDAO.class index b5cdd7a..6324196 100644 Binary files a/target/classes/DAO/ReponseDAO.class and b/target/classes/DAO/ReponseDAO.class differ diff --git a/target/classes/DAO/SessionDAO.class b/target/classes/DAO/SessionDAO.class index bc5716e..32b8cf4 100644 Binary files a/target/classes/DAO/SessionDAO.class and b/target/classes/DAO/SessionDAO.class differ diff --git a/target/classes/jpa/JpaTest.class b/target/classes/jpa/JpaTest.class index b9d6bae..a338d64 100644 Binary files a/target/classes/jpa/JpaTest.class and b/target/classes/jpa/JpaTest.class differ diff --git a/target/classes/metier/Session.class b/target/classes/metier/Session.class index a6102e9..e4e79a3 100644 Binary files a/target/classes/metier/Session.class and b/target/classes/metier/Session.class differ