72 votes

Sauvegardes transactionnelles sans appel de la méthode de mise à jour

J’ai une méthode annotée avec @Transactional. Je récupère un objet de ma base de données Oracle, modifie un champ, puis reviens à partir de la méthode. J’ai oublié d’enregistrer l’objet, mais j’ai découvert que la base de données est mise à jour de toute façon.

applicationContext

ma méthode

Ma question est la suivante : pourquoi MyObject est-il conservé dans la base de données ?

19voto

Piotr Nowicki Points 7565

Si vous utilisez un JPA, la spécification indique que si votre entité est à l’état géré (et c’est ce que vous faites en récupérant les données du DAO dans une transaction active), toutes les modifications apportées à celle-ci seront reflétées dans la base de données lors de la validation de la transaction.

Donc, en d’autres termes, peu importe si vous appelez l’opération de mise à jour ou non, car la validation de transaction videra les modifications dans la base de données.

9voto

Sandy Points 113

J’avais `` l’habitude de le résoudre

5voto

Sagar Kapadia Points 51

J’ai trouvé que l’empêchement des mises à jour automatiques de la base de données est un processus en deux étapes.

Étape I :

Étape II :

3voto

Hank Points 502

Pour JPA, `` appelez pour éviter le rinçage automatique. Mais vous devez être conscient que l’entité détachée perdra la magie ORM après, par exemple, la récupération paresseuse, la mise à jour en cascade.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X