Bonjour à tous!
Je suis bloqué depuis un petit moment sur problème qui me pose bien des soucis!
Je dois mettre à jour un objet en bdd, en m'assurant au passage qu'un de ses attributs n'est pas déjà utilisé.
Voici le code en question :

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
 
public Customer saveCustomer(Customer customer) {
	Partner p = partnerDao.findByCode(Partner.APPLICATION_CODE);
	customer.setPartner(p);
 
	// Vérification de l'unicité du numéro de client
	dao.evict(customer);
	Customer c = dao.findByIdentifier(customer.getIdentifier());
	if ((c != null) && (!customer.getId().equals(c.getId()))) {
		throw new DataIntegrityException("Non unique customer identifier");
	}
 
	customer = dao.merge(customer);
	return customer;
}
Le problème est que je me retrouve avec une exception LazyInitializationException lorsque je fais "dao.merge(client);"

Je ne comprends absolument pas...
La configuration des mes transactions est correct (je n'ai jamais eu de problèmes jusque là), mes cascades sont également correctement configurés...
Je peux fournir ma configuration si besoin.

Le plus incompréhensible est que si je déplace "dao.evict(client);" en première ligne de la méthode, tout marche parfaitement...
Pour info j'ai implémenté la méthode "evict" comme indiqué sur les forums hibernate (mais si je fais un clear, j'ai de toute façon le même problème).

Est-ce que quelqu'un a une idée ?
Merci d'avance.