*/ readonly class PersonDocumentRepository implements ObjectRepository, AssociatedEntityToStoredObjectInterface { private EntityRepository $repository; public function __construct( private EntityManagerInterface $entityManager, ) { $this->repository = $this->entityManager->getRepository($this->getClassName()); } public function find($id): ?PersonDocument { return $this->repository->find($id); } public function findAll() { return $this->repository->findAll(); } public function findBy(array $criteria, ?array $orderBy = null, ?int $limit = null, ?int $offset = null) { return $this->repository->findBy($criteria, $orderBy, $limit, $offset); } public function findOneBy(array $criteria): ?PersonDocument { return $this->repository->findOneBy($criteria); } public function getClassName(): string { return PersonDocument::class; } public function findAssociatedEntityToStoredObject(StoredObject $storedObject): ?object { $qb = $this->repository->createQueryBuilder('d'); $query = $qb->where('d.object = :storedObject') ->setParameter('storedObject', $storedObject) ->getQuery(); return $query->getOneOrNullResult(); } }