*
* @return the {@link EntityKeyMetadata} of the entity type selected by this query or {@code null} in case this
* query does not select exactly one entity type (e.g. in case of scalar values or joins (if supported in future revisions)).
*/
private EntityKeyMetadata getSingleEntityKeyMetadataOrNull(Type[] queryReturnTypes) {
EntityKeyMetadata metadata = null;
for ( Type queryReturn : queryReturnTypes ) {
if ( queryReturn instanceof EntityType ) {
if ( metadata != null ) {
return null;
}
EntityType rootReturn = (EntityType) queryReturn;
OgmEntityPersister persister = (OgmEntityPersister) sessionFactory.getEntityPersister( rootReturn.getName() );
metadata = new EntityKeyMetadata( persister.getTableName(), persister.getRootTableIdentifierColumnNames() );
}
}
return metadata;
}