J'utilise Doctrine 2 comme ORM, et les choses se passent bien, mais je m'interroge sur l'utilisation de l'ORM. EntityManager#persist()
méthode. Le site "Entités persistantes" indique ce qui suit à propos d'un appel à persist()
pour l'objet X
:
Si X est une entité gérée préexistante, elle est ignorée par l'opération persist.
Cela me pousse à croire que persist()
ne doit être appelé que lorsque l'objet est nouveau et n'a pas encore été enregistré dans la base de données. Cependant, la documentation de la méthode Politique de suivi des changements "Explicite différée". dit :
... Doctrine 2 ne prend en compte que les entités qui ont été explicitement marquées pour la détection des changements par un appel à EntityManager#persist(entity) ...
... qui ressemble à persist()
doit être appelé sur l'objet pour qu'il soit mis à jour. Quand doit-on persist()
être appelé ? Si ce n'est que pour les nouveaux objets, y a-t-il un impact significatif sur les performances si on l'appelle quand même chaque fois qu'une entité est mise à jour et qu'on laisse Doctrine faire la différence ?