Bonjour,
dans mon modèle j'aimerais avoir une relation many-to-many bidirectionnelle entre 2 classes : Client et Fsl
Dans Client j'ai :
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
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 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
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; }
J'ai une exception:
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);
A noter que si je retire la ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 illegal attempt to associate a collection with two open sessions
Tout fonctionne bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 client2.getFsls().add(fslDao.findAll().get(0));
Là j'avoue que je ne vois pas trop bien d'où vient le problème, si quelqu'un a une idée![]()
Partager