When Lifecycle Events are invoked on entity update (@PreUpdate), the entity is not updated properly in the database.
This code creates a User object, sets its name to "Bob" and its value to empty, then updates the object and updates the name to "Alice".
$user = new User;
However, when the User class has a @PreUpdate event that e.g. sets the value to "Hello World", the name change gets lost and only the value is updated by the second flush() call.
This is a critical bug which prevents creation of entities that simulate the "Timestampable" behaviour of Doctrine 1.x...