Bonjour
J'ai 2 modèles "Entrée" et "Emplacement" qui sont liés par une relation @ManyToMany, c'est-à-dire qu'une entrée de marchandises peut avoir plusieurs emplacements dans l'entrepot, et un emplacement peut contenir plusieurs marchandises:
Code java : 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 com.nitraentrepot.model; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.Table; @Entity @Table(name = "EMPLACEMENT") public class Emplacement { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID_EMPLACEMENT", updatable = false, nullable = false) private long idEmplacement; @Column(name = "NUM_EMPLACEMENT", insertable=true, updatable=true, nullable=false) private String numEmplacement; @ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.MERGE) @JoinTable( name = "Emplacement_Entree", joinColumns = {@JoinColumn(name = "emplacement_id")}, inverseJoinColumns = {@JoinColumn(name = "entree_id")} ) private Set<Entree> entrees; public Emplacement() { super(); } public Emplacement( String numEmplacement, boolean isDone) { super(); this.numEmplacement = numEmplacement; } public long getIdEmplacement() { return idEmplacement; } public void setIdEmplacement(long idEmplacement) { this.idEmplacement = idEmplacement; } public String getNumEmplacement() { return numEmplacement; } public void setNumEmplacement(String numEmplacement) { this.numEmplacement = numEmplacement; } public Set<Entree> getEntrees() { return entrees; } }
Code java : 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 com.nitraentrepot.model; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.Table; @Entity @Table(name = "EMPLACEMENT") public class Emplacement { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID_EMPLACEMENT", updatable = false, nullable = false) private long idEmplacement; @Column(name = "NUM_EMPLACEMENT", insertable=true, updatable=true, nullable=false) private String numEmplacement; @ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.MERGE) @JoinTable( name = "Emplacement_Entree", joinColumns = {@JoinColumn(name = "emplacement_id")}, inverseJoinColumns = {@JoinColumn(name = "entree_id")} ) private Set<Entree> entrees; public Emplacement() { super(); } public Emplacement( String numEmplacement, boolean isDone) { super(); this.numEmplacement = numEmplacement; } public long getIdEmplacement() { return idEmplacement; } public void setIdEmplacement(long idEmplacement) { this.idEmplacement = idEmplacement; } public String getNumEmplacement() { return numEmplacement; } public void setNumEmplacement(String numEmplacement) { this.numEmplacement = numEmplacement; } public Set<Entree> getEntrees() { return entrees; } }
Lors du lancement l'application une "e table appelée "Emplacement_Entree" est créée.
J'arrive à insérer les données d'une entrée, mais je voudrais savoir comment insérer les données dans cette 3e table.
Voici ce que j'ai tenté mais l'insertion dans la 3e table ne marche pas:
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 @PostMapping("/ajouterEntree") public ResponseEntity<String> addEntree(@Valid Entree entree, BindingResult result,ModelMap modelMap, @RequestParam(name = "numDossier") String numDossier, @RequestParam(name = "emplacement") String liste_emplacements) { Emplacement e = new Emplacement(); e.setIdEmplacement(75); e.getEntrees().add(entree); entree.getEmplacements().add(e); entreeService.saveEntree(entree); return new ResponseEntity<String>("ok" + result, HttpStatus.OK); }
Partager