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
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;
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
5
 
ALTER TABLE taches
  ADD CONSTRAINT fk94dc8fe08bf812e8 FOREIGN KEY (idpriorite)
      REFERENCES tachespriorite (idpriorite) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION;
normalement pour ma clé étrangère j'aurai du avoir ON DELETE CASCADE au lieu de 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.