2010-12-03 6 views

Répondre

0

j'ai trouvé l'attribut orphanRemoval pour @OneToMany et @OneToOne relations:

Lorsqu'une entité cible dans un à un ou un à-plusieurs est supprimé de la relation, il est souvent souhaitable de cascader l'opération de suppression vers l'entité cible. De telles entités cibles sont considérées comme des «orphelins» et l'attribut orphelinRemoval peut être utilisé pour spécifier que les entités orphelines doivent être supprimées. Par exemple, si une commande contient plusieurs éléments de campagne et que l'un des éléments de ligne est supprimé de la campagne, l'élément de campagne supprimé est considéré comme orphelin. Si orphanRemoval est défini sur true, l'entité de ligne de commande sera supprimée lorsque l'élément de ligne sera supprimé de la commande.

Utilisation:

@OneToMany(mappedBy="customer", orphanRemoval=true) 
public List<Order> orders; 
0

Il y a deux choses qui devraient être très clair lors de la manipulation dans l'agrégation JPA.

  1. La relation dans le monde relationnel.
  2. La relation requise dans le monde objet.

La relation dans le monde Java est régie par le besoin du domaine. Par exemple, un utilisateur peut avoir beaucoup d'adresses, donc nous gardons le faire l'agrégation de l'adresse dans l'utilisateur et ne gardons pas la relation inverse. Pour la composition, nous devons gérer le comportement en cascade.

Un traitement plus de détail peut être voir here