update DTO

This commit is contained in:
tuanvu
2025-09-29 23:08:56 +02:00
parent 58470b6e46
commit e3ce24a43e
10 changed files with 104 additions and 60 deletions

View File

@@ -2,17 +2,16 @@ package DAO;
import jakarta.persistence.EntityManager; import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityTransaction; import jakarta.persistence.EntityTransaction;
import jakarta.persistence.PersistenceException;
import jpa.EntityManagerHelper; import jpa.EntityManagerHelper;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
public abstract class GenericDAOImpl<K, T extends Serializable> implements Generic<K, T> { public abstract class AbstractJpaDao<K, T extends Serializable> implements IGenericDao<K, T> {
protected EntityManager em; protected EntityManager em;
private Class<T> entityClass; private Class<T> entityClass;
public GenericDAOImpl() { public AbstractJpaDao() {
this.em = EntityManagerHelper.getEntityManager(); this.em = EntityManagerHelper.getEntityManager();
} }
@@ -21,6 +20,10 @@ public abstract class GenericDAOImpl<K, T extends Serializable> implements Gener
this.entityClass= class2; this.entityClass= class2;
} }
public T findOne(K id) {
return em.find(entityClass, id);
}
public List<T> findAll() { public List<T> findAll() {
return em.createQuery("select e from " + entityClass.getName() + " as e", entityClass).getResultList(); return em.createQuery("select e from " + entityClass.getName() + " as e", entityClass).getResultList();
} }

View File

@@ -0,0 +1,50 @@
package DAO;
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityManagerFactory;
import jakarta.persistence.Persistence;
public class EntityManagerHelper {
private static final EntityManagerFactory emf;
private static final ThreadLocal<EntityManager> threadLocal;
static {
emf = Persistence.createEntityManagerFactory("dev");
threadLocal = new ThreadLocal<EntityManager>();
}
public static EntityManager getEntityManager() {
EntityManager em = threadLocal.get();
if (em == null) {
em = emf.createEntityManager();
threadLocal.set(em);
}
return em;
}
public static void closeEntityManager() {
EntityManager em = threadLocal.get();
if (em != null) {
em.close();
threadLocal.set(null);
}
}
public static void closeEntityManagerFactory() {
emf.close();
}
public static void beginTransaction() {
getEntityManager().getTransaction().begin();
}
public static void rollback() {
getEntityManager().getTransaction().rollback();
}
public static void commit() {
getEntityManager().getTransaction().commit();
}
}

View File

@@ -3,11 +3,12 @@ package DAO;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
public interface Generic<K, T extends Serializable> { public interface IGenericDao<K, T extends Serializable> {
void create(final T entity); void create(final T entity);
T findById(final K id); T findById(final K id);
T update(final T entity); T update(final T entity);
void delete(final T entity); void delete(final T entity);
void deleteById(final K id); void deleteById(final K id);
List<T> findAll(); List<T> findAll();
T findOne(final K id);
} }

View File

@@ -2,7 +2,7 @@ package DAO;
import metier.Question; import metier.Question;
public class QuestionDAO extends GenericDAOImpl<Integer, Question> { public class QuestionDAO extends AbstractJpaDao<Integer, Question> {
public QuestionDAO(){ public QuestionDAO(){
super(); super();
this.setClass(Question.class); this.setClass(Question.class);

View File

@@ -3,7 +3,7 @@ package DAO;
import jakarta.persistence.EntityTransaction; import jakarta.persistence.EntityTransaction;
import metier.Quizz; import metier.Quizz;
public class QuizzDAO extends GenericDAOImpl<Integer, Quizz>{ public class QuizzDAO extends AbstractJpaDao<Integer, Quizz> {
public QuizzDAO(){ public QuizzDAO(){
super(); super();
this.setClass(Quizz.class); this.setClass(Quizz.class);

View File

@@ -1,12 +1,8 @@
package DAO; package DAO;
import java.util.List;
import jakarta.persistence.EntityTransaction;
import jakarta.persistence.Query;
import metier.Reponse; import metier.Reponse;
public class ReponseDAO extends GenericDAOImpl<Integer, Reponse> { public class ReponseDAO extends AbstractJpaDao<Integer, Reponse> {
public ReponseDAO(){ public ReponseDAO(){
super(); super();
this.setClass(Reponse.class); this.setClass(Reponse.class);

View File

@@ -4,11 +4,10 @@ package DAO;
import jakarta.persistence.EntityTransaction; import jakarta.persistence.EntityTransaction;
import jakarta.persistence.Query; import jakarta.persistence.Query;
import metier.Session; import metier.Session;
import metier.Utilisateur;
import java.util.List; import java.util.List;
public class SessionDAO extends GenericDAOImpl<Integer, Session> { public class SessionDAO extends AbstractJpaDao<Integer, Session> {
public SessionDAO() { public SessionDAO() {
super(); super();
this.setClass(Session.class); this.setClass(Session.class);

View File

@@ -5,9 +5,7 @@ import jakarta.persistence.Query;
import metier.Session; import metier.Session;
import metier.Utilisateur; import metier.Utilisateur;
import java.util.ArrayList; public class UtilisateurDAO extends AbstractJpaDao<Integer, Utilisateur> {
public class UtilisateurDAO extends GenericDAOImpl<Integer, Utilisateur>{
public UtilisateurDAO() { public UtilisateurDAO() {
super(); super();
this.setClass(Utilisateur.class); this.setClass(Utilisateur.class);

View File

@@ -13,7 +13,4 @@ public interface UtilisateurMapper {
UtilisateurDTO toDTO(Utilisateur utilisateur); UtilisateurDTO toDTO(Utilisateur utilisateur);
Utilisateur toEntity(UtilisateurDTO dto); Utilisateur toEntity(UtilisateurDTO dto);
List<UtilisateurDTO> toDTOs(List<Utilisateur> utilisateurs);
List<Utilisateur> toEntitys(List<UtilisateurDTO> dtos);
} }

View File

@@ -11,36 +11,37 @@ import java.util.List;
public class JpaTest { public class JpaTest {
private EntityManager manager; private EntityManager manager;
public JpaTest(EntityManager manager) { public JpaTest(EntityManager manager) {
this.manager = manager; this.manager = manager;
} }
/**
* @param args /**
*/ * @param args
public static void main(String[] args) { */
public static void main(String[] args) {
EntityManager manager = EntityManagerHelper.getEntityManager(); EntityManager manager = EntityManagerHelper.getEntityManager();
JpaTest test = new JpaTest(manager); JpaTest test = new JpaTest(manager);
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.list_utilisateur(); //test.list_utilisateur();
//test.list_session(); //test.list_session();
} 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");
} }
private void create_user_test() { private void create_user_test() {
int numUser = manager.createQuery("SELECT u FROM Utilisateur u", Utilisateur.class).getResultList().size(); int numUser = manager.createQuery("SELECT u FROM Utilisateur u", Utilisateur.class).getResultList().size();
@@ -56,42 +57,41 @@ 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() {
int numUser = manager.createQuery("SELECT u FROM Session u", Session.class).getResultList().size(); int numUser = manager.createQuery("SELECT u FROM Session u", Session.class).getResultList().size();
if (numUser == 0) { if (numUser == 0) {
//Utilisateur //Utilisateur
Session session1 = new Session(); Session session1 = new Session();
session1.setCodePIN(1703); session1.setCodePIN(1703);
session1.setTheme("Inphormatik"); session1.setTheme("Inphormatik");
session1.setQuizzs(new ArrayList<>()); session1.setQuizzs(new ArrayList<>());
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(); List<Utilisateur> result_utilisatuer_list = manager.createQuery("select u from Utilisateur u", Utilisateur.class).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(); List<Session> result_session_list = manager.createQuery("select s from Session s", Session.class).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()) {
System.out.println(u.getId() + " " + u.getName() +" "+ u.getEmail()); System.out.println(u.getId() + " " + u.getName() + " " + u.getEmail());
} }
} }
} }
} }