From 29388a96dd43a742d712c27188f573898102c9b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=A0s?= Date: Thu, 28 Mar 2024 17:38:25 +0100 Subject: [PATCH] feat(DevWeb): Edit findByField to search with int/boolean etc... --- .../src/main/java/uppa/project/dao/DAO.java | 2 +- .../uppa/project/dao/jpa/DAO_JPA_Game.java | 18 +++++++----------- .../uppa/project/dao/jpa/DAO_JPA_Player.java | 17 ++++++----------- .../dao/jpa/DAO_JPA_RecoveryPasswordToken.java | 5 ++--- .../uppa/project/dao/jpa/DAO_JPA_User.java | 5 ++--- 5 files changed, 18 insertions(+), 29 deletions(-) diff --git a/S2/DevWeb/Projet/src/main/java/uppa/project/dao/DAO.java b/S2/DevWeb/Projet/src/main/java/uppa/project/dao/DAO.java index 4d31956..24b3392 100644 --- a/S2/DevWeb/Projet/src/main/java/uppa/project/dao/DAO.java +++ b/S2/DevWeb/Projet/src/main/java/uppa/project/dao/DAO.java @@ -78,5 +78,5 @@ public abstract class DAO { * @throws DAOException en cas de problème * @see D */ - public abstract D[] findByField(String field, String value) throws DAOException; + public abstract D[] findByField(String field, Object value) throws DAOException; } diff --git a/S2/DevWeb/Projet/src/main/java/uppa/project/dao/jpa/DAO_JPA_Game.java b/S2/DevWeb/Projet/src/main/java/uppa/project/dao/jpa/DAO_JPA_Game.java index 82235de..f4717b0 100644 --- a/S2/DevWeb/Projet/src/main/java/uppa/project/dao/jpa/DAO_JPA_Game.java +++ b/S2/DevWeb/Projet/src/main/java/uppa/project/dao/jpa/DAO_JPA_Game.java @@ -10,6 +10,7 @@ import jakarta.persistence.EntityManager; import jakarta.persistence.TypedQuery; import java.math.BigDecimal; import java.util.List; +import java.util.Objects; import uppa.project.dao.DAO; import uppa.project.dao.DAOException; import uppa.project.pojo.Game; @@ -41,16 +42,15 @@ public class DAO_JPA_Game extends DAO { @Override public Game findById(int id) throws DAOException { - Game result = entityManager.find(Game.class, new BigDecimal(id)); - entityManager.flush(); - return result; + return entityManager.find(Game.class, new BigDecimal(id)); } @Override - public Game[] findByField(String field, String value) throws DAOException { - TypedQuery query = entityManager.createQuery("SELECT u FROM Game u WHERE ?1=?2", Game.class); - query.setParameter(1, field); - query.setParameter(2, value); + public Game[] findByField(String field, Object value) throws DAOException { + String sqlQuery = String.format("SELECT u FROM Game u WHERE u.%s = (:val)", field); + + TypedQuery query = entityManager.createQuery(sqlQuery, Game.class); + query.setParameter("val", value); List results = query.getResultList(); return results.toArray(new Game[0]); } @@ -69,15 +69,11 @@ public class DAO_JPA_Game extends DAO { @Override public void update(Game data) throws DAOException { - entityManager.getTransaction().begin(); entityManager.merge(data); - entityManager.getTransaction().commit(); } @Override public void delete(Game data) throws DAOException { - entityManager.getTransaction().begin(); entityManager.remove(data); - entityManager.getTransaction().commit(); } } diff --git a/S2/DevWeb/Projet/src/main/java/uppa/project/dao/jpa/DAO_JPA_Player.java b/S2/DevWeb/Projet/src/main/java/uppa/project/dao/jpa/DAO_JPA_Player.java index cf5755b..63f7406 100644 --- a/S2/DevWeb/Projet/src/main/java/uppa/project/dao/jpa/DAO_JPA_Player.java +++ b/S2/DevWeb/Projet/src/main/java/uppa/project/dao/jpa/DAO_JPA_Player.java @@ -36,16 +36,15 @@ public class DAO_JPA_Player extends DAO { @Override public Player findById(int id) throws DAOException { - Player result = entityManager.find(Player.class, new BigDecimal(id)); - entityManager.flush(); - return result; + return entityManager.find(Player.class, new BigDecimal(id)); } @Override - public Player[] findByField(String field, String value) throws DAOException { - TypedQuery query = entityManager.createQuery("SELECT p FROM Player p WHERE ?1=?2", Player.class); - query.setParameter(1, field); - query.setParameter(2, value); + public Player[] findByField(String field, Object value) throws DAOException { + String sqlQuery = String.format("SELECT p FROM Player p WHERE p.%s = (:val)", field); + + TypedQuery query = entityManager.createQuery(sqlQuery, Player.class); + query.setParameter("val", value); List results = query.getResultList(); return results.toArray(new Player[0]); } @@ -64,15 +63,11 @@ public class DAO_JPA_Player extends DAO { @Override public void update(Player data) throws DAOException { - entityManager.getTransaction().begin(); entityManager.merge(data); - entityManager.getTransaction().commit(); } @Override public void delete(Player data) throws DAOException { - entityManager.getTransaction().begin(); entityManager.remove(data); - entityManager.getTransaction().commit(); } } diff --git a/S2/DevWeb/Projet/src/main/java/uppa/project/dao/jpa/DAO_JPA_RecoveryPasswordToken.java b/S2/DevWeb/Projet/src/main/java/uppa/project/dao/jpa/DAO_JPA_RecoveryPasswordToken.java index b9b9ec1..9e74e23 100644 --- a/S2/DevWeb/Projet/src/main/java/uppa/project/dao/jpa/DAO_JPA_RecoveryPasswordToken.java +++ b/S2/DevWeb/Projet/src/main/java/uppa/project/dao/jpa/DAO_JPA_RecoveryPasswordToken.java @@ -36,11 +36,10 @@ public class DAO_JPA_RecoveryPasswordToken extends DAO { @Override public RecoveryPasswordToken findById(int id) throws DAOException { - RecoveryPasswordToken result = entityManager.find(RecoveryPasswordToken.class, new BigDecimal(id)); - return result; + return entityManager.find(RecoveryPasswordToken.class, new BigDecimal(id)); } - public RecoveryPasswordToken[] findByField(String field, String value) throws DAOException { + public RecoveryPasswordToken[] findByField(String field, Object value) throws DAOException { String sqlQuery = String.format("SELECT r FROM RecoveryPasswordToken r WHERE r.%s = (:val)", field); TypedQuery query = entityManager.createQuery(sqlQuery, RecoveryPasswordToken.class); diff --git a/S2/DevWeb/Projet/src/main/java/uppa/project/dao/jpa/DAO_JPA_User.java b/S2/DevWeb/Projet/src/main/java/uppa/project/dao/jpa/DAO_JPA_User.java index aa05025..24e79fb 100644 --- a/S2/DevWeb/Projet/src/main/java/uppa/project/dao/jpa/DAO_JPA_User.java +++ b/S2/DevWeb/Projet/src/main/java/uppa/project/dao/jpa/DAO_JPA_User.java @@ -36,11 +36,10 @@ public class DAO_JPA_User extends DAO { @Override public User findById(int id) throws DAOException { - User result = entityManager.find(User.class, new BigDecimal(id)); - return result; + return entityManager.find(User.class, new BigDecimal(id)); } - public User[] findByField(String field, String value) throws DAOException { + public User[] findByField(String field, Object value) throws DAOException { String sqlQuery = String.format("SELECT u FROM User u WHERE u.%s = (:val)", field); TypedQuery query = entityManager.createQuery(sqlQuery, User.class);