getIdentifierValues causes an exception on entyties that have only association keys

Details

Description

On entities that have only association keys as primary keys:

Calling BasicEntityPersister::exists() cause the invocation of ClassMetadata::getIdentifierValues() method.
This method returns associated entities as identifier values.
Then BasicEntityPersister::exists() tries to converts these objects to string, instead of searching their primary keys.

Some problems:

getIdentifierValues have not access to external world (only its class metadata and the current entity).