i guess that is because the proxy is not initialized at that point. found this on google: http://stackoverflow.com/questions/9088603/symfony2-doctrine-how-to-re-save-an-entity-with-a-onetomany-as-a-cascading-new indicating that what you do should actually work, as we don't persist the metadata. 

alternatively we could implement something like your cloneMetadata directly in the metadata class and call it copyMetadata or something.