Bonjour.
Je suis en création d'une application avec le Framework play! et je rencontre un soucis dans la création d'une relation de type ManyToMany.
En suivant le tuto je comprend et exploite sans probleme les relations ManyToOne et OneToMany mais la je bloque (sachant qu'en plus je suis un débutant JPA).
Bref voici les 2 classes 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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 package models; import java.util.*; import javax.persistence.*; import play.db.jpa.*; import models.FormatSiteWeb; import models.MotCleSiteWeb; import models.ThemeSiteWeb; @Entity /** * Classe SiteWeb * Classe utilisée pour stocker les différents site web references. * @author a.pellet <pellet.aurelien@gmail.com> * @see models.FormatSiteWeb; * @since 2010/04/16 */ public class SiteWeb extends Model { // -------------------------------------------------------------------- // Dependances avec les autres classes // -------------------------------------------------------------------- @ManyToOne public FormatSiteWeb formatDuSiteWeb; @ManyToMany(cascade=CascadeType.ALL) public List<MotCleSiteWeb> listeDeMotsClesCorrespondantsAuSiteWeb; @ManyToOne public ThemeSiteWeb themeDuSiteWeb; // -------------------------------------------------------------------- // Proprietes de la classe. // -------------------------------------------------------------------- public String nom; public String slogan; public String url; @Lob public String description; /** * Constructeur surcharge pour l'initialisation d'un site web. * @param String format * @param String nom * @param String slogan * @param String url * @param String description */ public SiteWeb(FormatSiteWeb formatDuSiteWeb, ThemeSiteWeb themeDuSiteWeb, String nom, String slogan, String url, String description) { // -------------------------------------------------------------------- // Dependances avec les autres classes // -------------------------------------------------------------------- this.formatDuSiteWeb = formatDuSiteWeb; this.listeDeMotsClesCorrespondantsAuSiteWeb = new ArrayList<MotCleSiteWeb>(); this.themeDuSiteWeb = themeDuSiteWeb; // -------------------------------------------------------------------- // Proprietes de la classe. // -------------------------------------------------------------------- this.nom = nom; this.slogan = slogan; this.url = url; this.description = description; } }
Alors ma question est : Comment mapper la relation ManyToMany sachant que je ne peux pas renseigner les ID des tables car ils sont cachés ?
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 package models; import java.util.*; import javax.persistence.*; import play.db.jpa.*; import models.SiteWeb; @Entity /** * Classe MotsClesSiteWeb * Classe utilisée pour stocker les différents mots clés des site web. * @author a.pellet <pellet.aurelien@gmail.com> * @see models.SiteWeb; * @since 2010/04/15 */ public class MotCleSiteWeb extends Model { // -------------------------------------------------------------------- // Dependances avec les autres classes // -------------------------------------------------------------------- @ManyToMany(cascade=CascadeType.ALL) public List<SiteWeb> listeDeSiteWebCorrespondantsAuMotCle; // -------------------------------------------------------------------- // Proprietes de la classe. // -------------------------------------------------------------------- public String nomDuMotCle; /** * Constructeur surcharge pour l'initialisation d'un mot cle. * @param String nom */ public MotCleSiteWeb(String nomDuMotCle) { // -------------------------------------------------------------------- // Dependances avec les autres classes // -------------------------------------------------------------------- this.listeDeSiteWebCorrespondantsAuMotCle = new ArrayList<SiteWeb>(); // -------------------------------------------------------------------- // Proprietes de la classe. // -------------------------------------------------------------------- this.nomDuMotCle = nomDuMotCle; } }
Comment sauvegarder tout les mots clés des sites web / les trouver ?
Quelqu'un aurait un exemple de code en ManyToMany avec un exemple de save / find ?
Merci d'avance
Partager