Question

Que fait réellement le CascadeType.REFRESH ?

La définition de cela est

  

Lorsque nous actualisons une entité, toutes les entités contenues dans ce champ sont également actualisées

.

mais qu'est-ce que cela signifie en pratique? Quelqu'un pourrait-il me donner un exemple simple, s'il vous plaît?

Était-ce utile?

La solution

Les descriptions individuelles de CascadeType peuvent être un peu déroutantes, mais il existe un moyen facile de le comprendre à partir du cas général.

Pour toutes les valeurs CascadeType , cela signifie que si l'opération X est appelée sur une instance à l'aide de l'interface EntityManager , et que cette instance référence à d'autres instances d'entité et que l'association CascadeType.X est définie, l'opération EntityManager sera également appliquée à cette entité associée.

Donc, EntityManager.refresh () est défini comme:

  

Actualiser l’état de l’instance de   la base de données, écrasant les modifications apportées   à l'entité, le cas échéant.

Donc, si l'entité A a une référence à l'entité B, et que cette référence est annotée avec @ CascadeType.REFRESH et que EntityManager.refresh (A) est appelé, puis EntityManager.refresh (B) est également appelé implicitement.

Autres conseils

Récupération par rafraîchissement: Les objets gérés peuvent être rechargés à partir de la base de données à l'aide de la méthode d'actualisation:

Le contenu de l'objet géré en mémoire est supprimé (y compris les modifications éventuelles) et remplacé par des données extraites de la base de données. Cela peut être utile pour garantir que l'application gère la version la plus récente d'un objet entité, juste au cas où il aurait été modifié par un autre EntityManager depuis son extraction.

Source: http://www.objectdb.com/java/jpa/persistence/ récupérer

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top