Bonjour,
J'ai une classe singleton qui contient la méthode suivante, qui fait un simple Select :

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();
		}
	}
}
Ma question est ce que le fait de la rendre synchronisé est justifiable ?
Pour info, c'est spring qui gère la création de factory EMF et l'injection.

Merci.