Bonjour,

Je suis en train de développer un intranet. Dans ma couche Dao, je met à jour un client. Etant nouveau développeur en Hibernate, je me demande si j'ai utilisé la bonne solution. Voilà le code d'une méthode de mise à jour :
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
public void updateClient(Clients client) {
		try {
			if (client != null && !client.getNom().equals("")) {
				// récupération de la session du client ou création d'une
				// nouvelle
				logger.info("mise à jour du cient "
						+ client.getNumEntrepriseClient() + " "
						+ client.getNom());
 
				// mise à jour du client grâce à hibernate: autorisé grâce à "@Transactional (readOnly=false)" de la
				// couche service
				getHibernateTemplate().clear();
				getHibernateTemplate().update(client);
			} 
			else {
				logger.error("Sur la méthode updateClient");
				throw new IllegalArgumentException(
						"méthode updateClient : client null !");
			}
 
		} catch (DataAccessException e) {
			logger.error("Exception - DataAccesException : " + e.getMessage()
					+ " sur la méthode updateClient");
		}
	}
En sachant que la classe hérite de HibernateDaoSupport.
J'utilise getHibernateTemplate().clear() parceque si je ne le met pas, j'ai une exception qui me dit que deux objet différents avec lemême identifiant sont dans la même session (par exemple quand je sauve un client puis juste après je le met à jour).

Donc voilà, je me demandais si j'utilisé la bonne manière.
Qu'en pensez vous ?

Cordialement,
Nicolas