protected function findAssociation($name)
    {
        if (strpos($name, '.') === false) {
            return $this->_associations->get($name);
        }

        list($name, $next) = array_pad(explode('.', $name, 2), 2, null);
        $result = $this->_associations->get($name);

        if ($result !== null && $next !== null) {
            $result = $result->getTarget()->getAssociation($next);
        }

        return $result;
    }