Que fait CascadeType.REFRESH?

Que fait réellement CascadeType.REFRESH ?

La définition en 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?

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

Pour toute valeur 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 a des références à d’autres instances d’entité et que cette association a CascadeType.X définie, l’opération EntityManager sera également appliquée. à cette entité associée.

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

Actualisez l’état de l’instance à partir de la firebase database, en remplaçant les modifications apscopes à 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 EntityManager.refresh(A) est appelée, EntityManager.refresh(B) est également appelée implicitement.

Récupération par actualisation: Les objects gérés peuvent être rechargés à partir de la firebase database en utilisant la méthode de rafraîchissement:

Le contenu de l’object géré en mémoire est supprimé (y compris les modifications, le cas échéant) et remplacé par les données extraites de la firebase database. Cela peut être utile pour garantir que l’application traite la version la plus récente d’un object entité, au cas où il aurait pu être modifié par un autre EntityManager depuis sa récupération.

Source: http://www.objectdb.com/java/jpa/persistence/resortingeve