Comment implémenter l'agrégation et la décomposition avec Java Persistence API? Quelles sont les meilleures pratiques?Agrégation et décomposition dans JPA
Merci à l'avance, Daniel
Comment implémenter l'agrégation et la décomposition avec Java Persistence API? Quelles sont les meilleures pratiques?Agrégation et décomposition dans JPA
Merci à l'avance, Daniel
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;
Il y a deux choses qui devraient être très clair lors de la manipulation dans l'agrégation JPA.
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