2 pièce(s) jointe(s)
SpringMVC Hibernate insertion ManyToMany
Bonjour, J'ai implémenté une relation de type ManyToMany entre CRMUser et Privilege comme suit:
Code:
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
|
public class CRMUser implements Serializable{
........
private Set<Privilege> privileges = new HashSet<Privilege>();
@ManyToMany(cascade ={CascadeType.PERSIST, CascadeType.MERGE}, fetch = FetchType.EAGER )
@JoinTable( name="CRMUSERS_PRIVILEGES",
joinColumns={@JoinColumn(name="USER_ID")},
inverseJoinColumns={@JoinColumn(name="PRIVILEGE_ID")}
)
public Set<Privilege> getPrivileges() {
return privileges;
}
.........
}
public class Privilege implements Serializable{
...........
private Set<CRMUser> users = new HashSet<CRMUser>();
...........
@ManyToMany(mappedBy="privileges", cascade ={CascadeType.PERSIST, CascadeType.MERGE}, fetch = FetchType.EAGER )
public Set<CRMUser> getUsers() {
return users;
}
......................
} |
quand j'insère un crmuser avec sa liste de privileges à l'aide d'un form comme suit :
Code:
1 2 3 4 5 6 7 8
| <form:form action="${addAction}" commandName="user">
..................................................................................................................
<form:label class="control-label" path="privileges">User Privielege(s)</form:label>
<div class="controls">
<form:select path="privileges" items="${prvlgs}" multiple="true" itemValue="privilegeID" itemLabel="privilege" class="form-control input-sm" data-rel="chosen"/>
</div>
..............................................................................................
</form:form> |
l'insertion se fait correctement sauf pour la table privileges c'est les identifiants qui sont insérés comme des nouveaux privileges et c'est les identifiants de nouveaux privileges qui sont insérés dans la table de jointure est c'est ça que j'ai comme résultat dans mon formulaire et la table des utilisateurs :
Pièce jointe 226844
Pièce jointe 226845
ma question est : SVP comment je peux ajouter un crmuser avec sa liste de privileges sans faire une insertion au niveau de la table privilege et que l'insertion au niveau de la table de jointure soit correcte ?