Bonjour.
J'ai quelques soucis à me reprensenter les actions qui sont engendrées par les définitions de cascade.
Sur les relation @OneToMany et @ManyToOne pas trop de problèmes mais pour les @ManyToMany je seche un peu.
Question 1 : J'ai deux entités en @ManyToMany "User" et "Role" sachant que la navigation est unidrectionnelle par la classe "User"
Je souhaite mettre à jour la liste de role d'un utilisateur sans pouvoir modifier , par cascade, les éléments roles
Voici ce que j'ai fais :
Est ce que ca vous semble correcte ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 @ManyToMany(cascade = {CascadeType.DETACH, CascadeType.MERGE, CascadeType.REFRESH}) @JoinTable(name = "USERS_HAVE_ROLES", joinColumns = { @JoinColumn(name = "IdUser") }, inverseJoinColumns = { @JoinColumn(name = "IdRole") }) private List<Role> roles;
Question 2 : Imaginons que le cas 1 soit en cascade.ALL, si je supprime un role dans l'instance de la classe user est ce que je supprime juste la relation dans la table de jointure ou je supprime aussi physiquement le rôle ?
En remerciant ceux qui prendraient le temps de me répondre
Partager