Spring boot 2.5.6
(1) m�thode 1
Profil.java
Fonctionnalite.java
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 ```java @Getter @Setter @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode @FieldDefaults(level = AccessLevel.PRIVATE) @Table(name = "t_profil") public class Profil { ... ... @ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE }, fetch = FetchType.LAZY) @JoinTable( name = "t_profils_fonctionnalites", joinColumns = { @JoinColumn(name = "profil_id") }, inverseJoinColumns = { @JoinColumn(name = "fonctionnalite_id") } ) public Set<Fonctionnalite> fonctionnalites = new HashSet(); } ```
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 ```java @jakarta.persistence.Entity @Getter @Setter @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode @FieldDefaults(level = AccessLevel.PRIVATE) @Table(name = "t_fonctionnalite") public class Fonctionnalite { ... ... @ManyToMany(mappedBy = "fonctionnalites", fetch = FetchType.LAZY) private Set<Profil> profils = new HashSet(); ```
j'ai v�rifi� plusieurs fois, les insertions sont correctes :
controller
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7 ``` profil fonctionnalite 1 1 1 2 2 1 2 4 ```
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6 ```java ... List<Profil> profilList= profilDao.findAll(); profilList.forEach(profil -> { profil.getFonctionnalites(); }); // je fais appel à getFonctionnalites(); pour le LAZY return new ResponseEntity<>(profilList, HttpStatus.OK); ```
j'obtiens ces donn�es :
les fonctionnalit�s des profils sont soit incompl�te, soit manquante!
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 ``` [ { "id": 1, "code": "CODEP1", "label": "defaut", "description": "defaut description1", "fonctionnalites": [ { "id": 1, "code": "codeF1", "label": "labelF1", "description": "descriptionF1", "profils": [] } ] }, { "id": 2, "code": "CODEP2", "label": "label2", "description": "description2", "fonctionnalites": [] }, ... ... ```
(2)
mis le fetch.eager sur Profil
les fonctionnalit�s des profils sont soit incompl�te, soit manquante!
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7 ``` @ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE }, fetch = FetchType.EAGER) @JoinTable( ```
** les r�sultats sont diff�rents entre (1) et (2) mais toujours fausses !
Partager