private function getFindOneByCountryAndMethodAndWeightQuery()
    {
        if (null === $this->findOneByCountryAndMethodAndWeightQuery) {
            $qb = $this->getCollectionQueryBuilder('o');
            $qb
                ->join('o.zone', 'z')
                ->join('o.method', 'm')
                ->andWhere($qb->expr()->isMemberOf(':country', 'z.countries'))
                ->andWhere($qb->expr()->gte('o.weight', ':weight'))
                ->andWhere($qb->expr()->eq('o.method', ':method'))
                ->addOrderBy('o.weight', 'ASC')
                ->setMaxResults(1)
            ;

            $this->findOneByCountryAndMethodAndWeightQuery = $qb->getQuery();
        }

        return $this->findOneByCountryAndMethodAndWeightQuery;
    }