protected function addJoinsForNestedProperty(string $property, string $rootAlias, QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator) : array
{
$propertyParts = $this->splitPropertyParts($property);
$parentAlias = $rootAlias;
foreach ($propertyParts['associations'] as $association) {
$alias = $this->addJoinOnce($queryBuilder, $queryNameGenerator, $parentAlias, $association);
$parentAlias = $alias;
}
if (!isset($alias)) {
throw new InvalidArgumentException(sprintf('Cannot add joins for property "%s" - property is not nested.', $property));
}
return [$alias, $propertyParts['field'], $propertyParts['associations']];
}