Bonjour,
J'ai une classe singleton qui contient la méthode suivante, qui fait un simple Select :
Ma question est ce que le fait de la rendre synchronisé est justifiable ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 public class UtilisateursManagerImpl implements UtilisateursManager { private EntityManagerFactory emf; private EntityManager entityManager; private static final Logger logger = LogManager.getLogger(UtilisateursManagerImpl.class.getSimpleName()); public Object initialize() { if(emf!=null) entityManager = emf.createEntityManager(); else logger.error("ERROR : emf NULL"); return entityManager; } public synchronized boolean isValidUser(String login) throws Exception { List listResult; UserBean user = null; try { StringBuilder nativeSQL = new StringBuilder(""); nativeSQL.append("select user.ID_UTILISATEUR from UTILISATEUR user where user.LOGIN_UTILISTEUR = :loginUser and user.EST_ACTIF = 1 "); Query queryNative = entityManager.createNativeQuery(nativeSQL.toString()); queryNative.setParameter("loginUser", login); listResult = queryNative.getResultList(); if (listResult != null && listResult.size() != 0) return true; return false; } catch (Exception de) { logger.error(de.getMessage()); de.printStackTrace(); entityManager.clear(); throw new Exception(de.getMessage()); } finally { entityManager.clear(); } } }
Pour info, c'est spring qui gère la création de factory EMF et l'injection.
Merci.
Partager