public function load(QueryBuilder $query, ClassMetadata $metadata)
{
$field = $this->mapping['fieldname'];
$target = $this->mapping['target'];
$boltname = $metadata->getBoltName();
$from = $query->getQueryPart('from');
if (isset($from[0]['alias'])) {
$alias = $from[0]['alias'];
} else {
$alias = $from[0]['table'];
}
// Standard relation fetch
$query->addSelect($this->getPlatformGroupConcat("{$field}.id", '_' . $field . '_id', $query))->addSelect($this->getPlatformGroupConcat("{$field}.to_id", '_' . $field . '_toid', $query))->leftJoin($alias, $target, $field, "{$alias}.id = {$field}.from_id AND {$field}.from_contenttype='{$boltname}' AND {$field}.to_contenttype='{$field}'")->addGroupBy("{$alias}.id");
}