Bonjour,
je viens vous demander conseil car je me sens bloqué.
coté BDD, j'ai 3 tables:
user: idUser, login, email
parking: idPark, name, country,city, etc
UserPark: idUser, idPark
coté objet java, j'ai créé les 2 entity suivante:
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 public class ParkingBean { @Id @Column(name = "idPark") @GeneratedValue(strategy = GenerationType.IDENTITY) private int idPark; @Column(name = "country") private String country; @Column(name = "city") private String city; @ManyToMany(mappedBy = "listPark", fetch = FetchType.LAZY) private List<User> listUser = new ArrayList<User>(); }
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 @Entity @Table(name = "REF_USER") public class User { @Id @Column(name = "idUser") @GeneratedValue(strategy = GenerationType.IDENTITY) private int idUser; @Column(name = "email") private String email; @Column(name = "username") private String username; @ManyToMany(fetch = FetchType.LAZY) @JoinTable(name = "REF_USERPARK", joinColumns = { @JoinColumn(name = "idUser") }, inverseJoinColumns = { @JoinColumn(name = "idPark") }) private List<ParkingBean> listPark = new ArrayList<ParkingBean>();
la relation entre les objet user et parking est une relation N,N.
le but est d'ajouter, supprimer, modifier chaque objet, et leur relation.
Je rencontre un problème pour la suppression que je ne comprend pas.
Je m'explique, si un user a une liste de parking, lorsque je le supprime, très bien tout fonctionne correctement, l'utilisateur est supprimé, ainsi que les dépendances.
Par contre a l'inverse, si un parking a une liste d'utilisateur, lorsque je le supprime, j'ai l'erreur MySQLIntegrityConstraintViolationException. erreur que je comprend liée a la relation.
J'ai donc rajouter ceci dans l'entity parking
maintenant je n'ai plus d'erreur, mais Hibernate va plus loin dans la suppression puisqu'il supprime le parking, les dépendances entre mon parking et les utilisateurs MAIS aussi les utilisateurs qui lui sont associés....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 @ManyToMany(mappedBy = "listPark", fetch = FetchType.LAZY, cascade = CascadeType.REMOVE) private List<User> listUser = new ArrayList<User>();
Le but est juste de supprimer le parking et les dépendances associés sans supprimer les utilisateurs. Pouvez vous m'expliquer car je bloque un peu lol.
En vous remerciant d'avance
Partager