Fix repositories to fetch entity linked to stored object

getSingleResult() replaced by getOneOrNullResult() to\ avoid error being thrown.
Fix naming of properties.
This commit is contained in:
Julie Lenaerts 2024-07-02 12:48:18 +02:00
parent 5b0babb9b0
commit 064dfc5a56
6 changed files with 11 additions and 23 deletions

View File

@ -102,20 +102,15 @@ class ActivityRepository extends ServiceEntityRepository implements AssociatedEn
return $qb->getQuery()->getResult(); return $qb->getQuery()->getResult();
} }
/**
* @throws NonUniqueResultException
* @throws NoResultException
*/
public function findAssociatedEntityToStoredObject(StoredObject $storedObject): ?Activity public function findAssociatedEntityToStoredObject(StoredObject $storedObject): ?Activity
{ {
$qb = $this->createQueryBuilder('a'); $qb = $this->createQueryBuilder('a');
$query = $qb $query = $qb
->join('a.documents', 'ad') ->leftJoin('a.documents', 'ad')
->join('ad.storedObject', 'so') ->where('ad.id = :storedObjectId')
->where('so.id = :storedObjectId')
->setParameter('storedObjectId', $storedObject->getId()) ->setParameter('storedObjectId', $storedObject->getId())
->getQuery(); ->getQuery();
return $query->getSingleResult(); return $query->getOneOrNullResult();
} }
} }

View File

@ -49,11 +49,11 @@ class AccompanyingCourseDocumentRepository implements ObjectRepository, Associat
public function findAssociatedEntityToStoredObject(StoredObject $storedObject): ?object public function findAssociatedEntityToStoredObject(StoredObject $storedObject): ?object
{ {
$qb = $this->repository->createQueryBuilder('d'); $qb = $this->repository->createQueryBuilder('d');
$query = $qb->where('d.storedObject = :storedObject') $query = $qb->where('d.object = :storedObject')
->setParameter('storedObject', $storedObject) ->setParameter('storedObject', $storedObject)
->getQuery(); ->getQuery();
return $query->getResult(); return $query->getOneOrNullResult();
} }
public function find($id): ?AccompanyingCourseDocument public function find($id): ?AccompanyingCourseDocument

View File

@ -58,10 +58,10 @@ readonly class PersonDocumentRepository implements ObjectRepository, AssociatedE
public function findAssociatedEntityToStoredObject(StoredObject $storedObject): ?object public function findAssociatedEntityToStoredObject(StoredObject $storedObject): ?object
{ {
$qb = $this->repository->createQueryBuilder('d'); $qb = $this->repository->createQueryBuilder('d');
$query = $qb->where('d.storedObject = :storedObject') $query = $qb->where('d.object = :storedObject')
->setParameter('storedObject', $storedObject) ->setParameter('storedObject', $storedObject)
->getQuery(); ->getQuery();
return $query->getResult(); return $query->getOneOrNullResult();
} }
} }

View File

@ -38,21 +38,16 @@ class EventRepository implements ObjectRepository, AssociatedEntityToStoredObjec
return $this->repository->createQueryBuilder($alias, $indexBy); return $this->repository->createQueryBuilder($alias, $indexBy);
} }
/**
* @throws NonUniqueResultException
* @throws NoResultException
*/
public function findAssociatedEntityToStoredObject(StoredObject $storedObject): ?object public function findAssociatedEntityToStoredObject(StoredObject $storedObject): ?object
{ {
$qb = $this->createQueryBuilder('e'); $qb = $this->createQueryBuilder('e');
$query = $qb $query = $qb
->join('e.documents', 'ed') ->join('e.documents', 'ed')
->join('ed.storedObject', 'so') ->where('ed.id = :storedObjectId')
->where('so.id = :storedObjectId')
->setParameter('storedObjectId', $storedObject->getId()) ->setParameter('storedObjectId', $storedObject->getId())
->getQuery(); ->getQuery();
return $query->getSingleResult(); return $query->getOneOrNullResult();
} }
public function find($id) public function find($id)

View File

@ -11,8 +11,6 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Repository\AccompanyingPeriod; namespace Chill\PersonBundle\Repository\AccompanyingPeriod;
use Chill\DocStoreBundle\Entity\StoredObject;
use Chill\DocStoreBundle\Repository\AssociatedEntityToStoredObjectInterface;
use Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWorkEvaluationDocument; use Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWorkEvaluationDocument;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\EntityRepository; use Doctrine\ORM\EntityRepository;

View File

@ -258,12 +258,12 @@ final readonly class AccompanyingPeriodWorkRepository implements ObjectRepositor
{ {
$qb = $this->repository->createQueryBuilder('acpw'); $qb = $this->repository->createQueryBuilder('acpw');
$query = $qb $query = $qb
->join('acpw.evaluations', 'acpwe') ->join('acpw.accompanyingPeriodWorkEvaluations', 'acpwe')
->join('acpwe.documents', 'acpwed') ->join('acpwe.documents', 'acpwed')
->where('acpwed.storedObject = :storedObject') ->where('acpwed.storedObject = :storedObject')
->setParameter('storedObject', $storedObject) ->setParameter('storedObject', $storedObject)
->getQuery(); ->getQuery();
return $query->getResult(); return $query->getOneOrNullResult();
} }
} }