 <p>Have a look at the Doctrine documentation to see what you can get in the <code>preUpdate</code> lifecycle callback: <a href="http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html#preupdate" rel="nofollow">http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html#preupdate</a> </p> <p>You have direct access to the original and changed values, so you don't have to query the database.</p> <p>And to answer your question, why the two values are the same: I'm not 100% sure on that but most probably the <code>EntityManager</code> actually understands that you want to retrieve the same object as you already have, so it returns it without querying the database. To actually query the DB again you would have to somehow refresh the object in the EM (which will probably end up in loosing your changes).</p>