2013-06-22 1 views
0

Salut je suis ce genre de situation:JPA/mise en veille prolongée - Cascade retirer de db

Entité TAG avec 2 champs ManyToMany qui contient 2 ensembles d'objets (Obj1, Obj2). Lorsque je supprime Obj1 je veux supprimer toutes les informations contenues dans Obj1 définie dans l'entité TAG. Pouvez-vous me dire comment faire cela?


@Entity(name = "tag") 
public class Tag { 

    ..... 

@ManyToMany(fetch = FetchType.LAZY) 
private Set<Checkpoint> checkpoints; 

    ...... 
} 

@Entity(name = "checkpoint") 
public class Checkpoint implements Serializable { 

      ...... 

} 

Il n'y a aucune référence à des balises dans checkpoint. Et si je mets Cascade à ManyToMany alors quand j'enlève la balise alors tous les utilisateurs avec cette balise sont supprimés. Ce que je veux, c'est supprimer la ligne dans la table tag_checkpoint quand le point de contrôle est supprimé. Dois-je le faire par moi-même ou il y a un bon moyen de le faire?

Répondre

0

Je viens de supprimer moi-même l'objet de DB.

0

Si ManyToMany effectue une suppression en cascade, la définition de cascade = CascadeType.ALL dans votre annotation @ManyToMany devrait fonctionner. Si ce n'est pas le cas, vous pouvez envisager de séparer les utilisations multiples de @OneToMany (si possible), avec CascadeType.ALL.