I found an issue in a specific case, when you find a child entity (JOINED) which is linked to another child entity.
If I clone the linked child entity and call getId(), it gives the value as 'string' rather than 'integer'. If I set the property id as public, there is no problem.
If I call getId on the child entity rather than the clone, it gives 'integer' as expected. So it's weird...
See failing test here: https://github.com/doctrine/doctrine2/pull/1086