2010-04-07 2 views
1

J'ai une entité de l'histoire avec les associations suivantes:JPA - Suppression d'entités

  • histoire < 1 - *> Chapitre
  • histoire < 1 - *> Commentaire
  • histoire < * -1> Utilisateur

Quelle est la manière correcte de supprimer cette entité et de gérer toutes les entités auxquelles elle se réfère? Existe-t-il une manière abrégée de spécifier que les entités associées doivent être gérées automatiquement ou est-ce que l'annotation @PreRemove mentionnée dans l'article ci-dessous est un moyen valable d'y parvenir?

http://blog.xebia.com/2009/04/09/jpa-implementation-patterns-removing-entities/

Répondre

2

Selon ce que vous voulez faire - supprimer les entités restantes ou conserver ensuite, vous pouvez utiliser l'attribut cascade des @*To* annotations.

+0

Merci. 'Cascade' est déjà défini comme' CascadeType.MERGE' sur certaines entités. Je demanderai aux autres personnes sur le projet si cela peut être changé. –

+2

vous pouvez ajouter 'CascadeType.DELETE' au' MERGE'. L'attribut 'cascade' accepte un tableau de types de cascade – Bozho

+2

Devrait être' CascadeType.REMOVE', pour être précis: http://www.oracle.com/technology/products/ias/toplink/jpa/resources/toplink-jpa- annotations.html # OneToMany –