Bonjour,

dans mon modèle j'aimerais avoir une relation many-to-many bidirectionnelle entre 2 classes : Client et Fsl

Dans Client j'ai :
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
 
@ManyToMany(
	cascade={CascadeType.ALL},
	targetEntity=Fsl.class
)
@JoinTable(
	name="client_fsl",
	joinColumns=@JoinColumn(name="client_id"),
	inverseJoinColumns=@JoinColumn(name="fsl_id")
)
public List<Fsl> getFsls() {
	return fsls;
}
public void setFsls(List<Fsl> fsls) {
	this.fsls = fsls;
}
Et dans Fsl :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
@ManyToMany(
	cascade={CascadeType.ALL},
    mappedBy = "fsls",
    targetEntity = Client.class
)
public List<Client> getClients() {
	return clients;
}
public void setClients(List<Client> clients) {
	this.clients = clients;
}
Et quand j'essaie de faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
Client client2 = new Client();
client2.setCivility(civilityDao.getByCode(Civility.Code.MME));
client2.setFirstName("Second");
client2.setLastName("Client");
client2.setLogin("client2");
client2.setPassword("5f4dcc3b5aa765d61d8327deb882cf99");
client2.setCompany(companyDao.findAll().get(0));
client2.getFsls().add(fslDao.findAll().get(0));
userDao.saveOrUpdate(client2);
J'ai une exception:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
illegal attempt to associate a collection with two open sessions
A noter que si je retire la ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
client2.getFsls().add(fslDao.findAll().get(0));
Tout fonctionne bien.

Là j'avoue que je ne vois pas trop bien d'où vient le problème, si quelqu'un a une idée