JPA un-à-plusieurs supprimer et définir foregn clé null
- Je utiliser les Données du Printemps, JPA, Hibernate et MySQL. J'ai un à plusieurs " de la relation entre l'Événement et la Catégorie. Évidemment, un événement peut avoir une seule catégorie et une catégorie peut être attribué à de nombreux Événements. Le problème apparaît lorsque j'essaie de supprimer la Catégorie, si un événement de tenir une clé étrangère de cette catégorie, puis je reçois un message d'erreur. Je tiens à mettre la clé étrangère dans la table des Événements à null quand une Catégorie est supprimée. Pour le moment je mettre à jour tous les Événements par la définition de la clé étrangère de manière explicite dans le code par la mise à jour à null avant la suppression de la Catégorie. Est-il possible de le faire dans l'utilisation des annotations?
C'est ma Catégorie:
@Entity
@Table(name = "category")
public class Category implements Serializable{
@OneToMany(mappedBy="category", targetEntity=Event.class, fetch=FetchType.LAZY, cascade=
{CascadeType.DETACH, CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
public Set<Event> getEvents_category() {
return events_category;
}
}
Et la classe d'Événement:
@Entity
@Table(name = "event")
public class Event implements Serializable{
@ManyToOne(cascade={CascadeType.DETACH, CascadeType.MERGE, CascadeType.PERSIST,
CascadeType.REFRESH})
@JoinColumn(name="events_dancestyle")
public DanceStyle getDanceStyle() {
return danceStyle;
}
}
J'ai vu que le sujet a été discuté à maintes reprises, mais je n'ai pas vu de solution.
OriginalL'auteur Lukasz | 2013-04-01
Vous devez vous connecter pour publier un commentaire.
Malheureusement, il n'est actuellement pas possible de faire cela en utilisant JPA/Hibernate annotations. Voir ces questions connexes:
Ont JPA/Hibernate à reproduire le "on DELETE SET NULL" fonctionnalité
On delete set null en veille prolongée dans @OneToMany
OriginalL'auteur David Levesque