Fini CriteriaTest
This commit is contained in:
@@ -3,14 +3,13 @@ package jpa;
|
|||||||
|
|
||||||
import jakarta.persistence.EntityManager;
|
import jakarta.persistence.EntityManager;
|
||||||
import jakarta.persistence.EntityTransaction;
|
import jakarta.persistence.EntityTransaction;
|
||||||
|
import jakarta.persistence.criteria.*;
|
||||||
import metier.*;
|
import metier.*;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class JpaTest {
|
public class JpaTest {
|
||||||
|
|
||||||
|
|
||||||
private EntityManager manager;
|
private EntityManager manager;
|
||||||
|
|
||||||
public JpaTest(EntityManager manager) {
|
public JpaTest(EntityManager manager) {
|
||||||
@@ -28,16 +27,17 @@ public class JpaTest {
|
|||||||
EntityTransaction tx = manager.getTransaction();
|
EntityTransaction tx = manager.getTransaction();
|
||||||
tx.begin();
|
tx.begin();
|
||||||
try {
|
try {
|
||||||
//test.create_user_test();
|
test.create_user_test();
|
||||||
//test.create_session_test();
|
test.create_session_test();
|
||||||
|
test.create_quizz_test(1,1);
|
||||||
//test.list_utilisateur();
|
//test.list_utilisateur();
|
||||||
//test.list_session();
|
//test.list_session();
|
||||||
|
test.list_quizz();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
tx.commit();
|
tx.commit();
|
||||||
|
|
||||||
|
|
||||||
manager.close();
|
manager.close();
|
||||||
EntityManagerHelper.closeEntityManagerFactory();
|
EntityManagerHelper.closeEntityManagerFactory();
|
||||||
System.out.println(".. done");
|
System.out.println(".. done");
|
||||||
@@ -58,7 +58,6 @@ public class JpaTest {
|
|||||||
manager.persist(utilisateur1);
|
manager.persist(utilisateur1);
|
||||||
manager.persist(utilisateur2);
|
manager.persist(utilisateur2);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void create_session_test() {
|
private void create_session_test() {
|
||||||
@@ -73,20 +72,27 @@ public class JpaTest {
|
|||||||
List<Utilisateur> ulist = manager.createQuery("select user from Utilisateur user").getResultList();
|
List<Utilisateur> ulist = manager.createQuery("select user from Utilisateur user").getResultList();
|
||||||
session1.setUtilisateurs(ulist);
|
session1.setUtilisateurs(ulist);
|
||||||
|
|
||||||
|
|
||||||
manager.persist(session1);
|
manager.persist(session1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void list_utilisateur() {
|
private void list_utilisateur() {
|
||||||
List<Utilisateur> result_utilisatuer_list = manager.createQuery("select u from Utilisateur u", Utilisateur.class).getResultList();
|
CriteriaBuilder criteriaBuilder = manager.getCriteriaBuilder();
|
||||||
|
CriteriaQuery<Utilisateur> query = criteriaBuilder.createQuery(Utilisateur.class);
|
||||||
|
Root<Utilisateur> from = query.from(Utilisateur.class);
|
||||||
|
query.select(from);
|
||||||
|
List<Utilisateur> result_utilisatuer_list = manager.createQuery(query).getResultList();
|
||||||
for (Utilisateur u : result_utilisatuer_list) {
|
for (Utilisateur u : result_utilisatuer_list) {
|
||||||
System.out.println(u.getId() + " " + u.getName() + " " + u.getEmail());
|
System.out.println(u.getId() + " " + u.getName() + " " + u.getEmail());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void list_session() {
|
private void list_session() {
|
||||||
List<Session> result_session_list = manager.createQuery("select s from Session s", Session.class).getResultList();
|
CriteriaBuilder criteriaBuilder = manager.getCriteriaBuilder();
|
||||||
|
CriteriaQuery<Session> query = criteriaBuilder.createQuery(Session.class);
|
||||||
|
Root<Session> from = query.from(Session.class);
|
||||||
|
query.select(from);
|
||||||
|
List<Session> result_session_list = manager.createQuery(query).getResultList();
|
||||||
for (Session s : result_session_list) {
|
for (Session s : result_session_list) {
|
||||||
System.out.println(s.getCodePIN() + " " + s.getTheme());
|
System.out.println(s.getCodePIN() + " " + s.getTheme());
|
||||||
for (Utilisateur u : s.getUtilisateurs()) {
|
for (Utilisateur u : s.getUtilisateurs()) {
|
||||||
@@ -94,4 +100,51 @@ public class JpaTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void create_quizz_test(int userId, int sessionId) {
|
||||||
|
|
||||||
|
CriteriaBuilder cb = manager.getCriteriaBuilder();
|
||||||
|
|
||||||
|
//GET USER
|
||||||
|
CriteriaQuery<Utilisateur> cqUser = cb.createQuery(Utilisateur.class);
|
||||||
|
Root<Utilisateur> userRoot = cqUser.from(Utilisateur.class);
|
||||||
|
cqUser.select(userRoot).where(cb.equal(userRoot.get("id"), userId));
|
||||||
|
Utilisateur u1 = manager.createQuery(cqUser).getSingleResult();
|
||||||
|
|
||||||
|
//GET SESSION
|
||||||
|
CriteriaQuery<Session> cqSess = cb.createQuery(Session.class);
|
||||||
|
Root<Session> sessRoot = cqSess.from(Session.class);
|
||||||
|
cqSess.select(sessRoot).where(cb.equal(sessRoot.get("id"), sessionId));
|
||||||
|
Session s1 = manager.createQuery(cqSess).getSingleResult();
|
||||||
|
|
||||||
|
List<Session> ls= u1.getSession();
|
||||||
|
ls.add(s1);
|
||||||
|
u1.setSession(ls);
|
||||||
|
Quizz quizz1 = new Quizz();
|
||||||
|
quizz1.setUtilisateur(u1);
|
||||||
|
quizz1.setSession(s1);
|
||||||
|
|
||||||
|
manager.persist(quizz1);
|
||||||
|
manager.merge(u1);
|
||||||
|
manager.persist(s1);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void list_quizz() {
|
||||||
|
CriteriaBuilder cb = manager.getCriteriaBuilder();
|
||||||
|
CriteriaQuery<Quizz> cq = cb.createQuery(Quizz.class);
|
||||||
|
Root<Quizz> from = cq.from(Quizz.class);
|
||||||
|
|
||||||
|
List<Integer> sessionIds = new ArrayList<>();
|
||||||
|
sessionIds.add(1);
|
||||||
|
//https://www.w3schools.com/SQL/sql_join_inner.asp
|
||||||
|
//https://stackoverflow.com/questions/15990141/how-to-make-a-criteriabuilder-join-with-a-custom-on-condition
|
||||||
|
Join<Quizz, Session> sessionJoin = from.join("session", JoinType.INNER);
|
||||||
|
cq.select(from).where(sessionJoin.get("id").in(sessionIds));
|
||||||
|
|
||||||
|
List<Quizz> quizzs = manager.createQuery(cq).getResultList();
|
||||||
|
for (Quizz q : quizzs) {
|
||||||
|
System.out.println("Quizz ID: " + q.getId() + ", User: " + q.getUtilisateur().getName() +
|
||||||
|
", Session ID: " + q.getSession().getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,5 +27,4 @@ public abstract class Reponse implements Serializable {
|
|||||||
public String valHTML(){
|
public String valHTML(){
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user