Bonjour,
j'ai fais le lien entre deux tables.
Une table taches
Une table Tachepriorite.
Une tache à une seule priorité
en revanche une priorité peut définir plusieurs taches.
voila pour le shéma.
table taches
[id]-[nom]-[prenom]-[libelle]-[date]-[idPriorite]
enregistrement
[1]-[bob]-[otool]-[test]-[2008-06-24]-[1]
table tachepriorite:
[idpriorite]-[type]
enregistrement
[1]-[urgent]
mon problème:
Le delete en cascade ne s'effectue pas lorsque je veux supprimer une priorité.
J'aurai aimé pouvoir supprimer en cascade toutes les taches dont la priorité disparait.
voici mon code:
mon entity tache
voici la requête sql correspondant à ma contrainte de clé étrangère générée automatiquement via JPA.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4@ManyToOne(cascade = {CascadeType.ALL}) @JoinColumn(name="idPriorite" , nullable=false) private TachesPriorite refPriorite;
normalement pour ma clé étrangère j'aurai du avoir ON DELETE CASCADE au lieu de ON DELETE NO ACTION.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ALTER TABLE taches ADD CONSTRAINT fk94dc8fe08bf812e8 FOREIGN KEY (idpriorite) REFERENCES tachespriorite (idpriorite) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION;
mais apparement JPA n'a pas traduit ma contrainte via l'annotation @ManyToOne(cascade = {CascadeType.ALL})
quelqu'un aurait il une idée ?
ps: lorsque je modifie manuellement la contrainte de clé étrangère directement dans postgres ça fonctionne (normal me direz vous)
merci beaucoup!
en espérant que quelqu'un saura ou se trouve mon erreur.



Répondre avec citation
Partager