Всего этого можно избежать.
1 - нужно организовать лаконичный способ получение сущности авторизованого пользвоателя
2 - метод `findBy` можно использовать вот так
```php
$productRepo = $serviceManager->getRepositoryManager()->getProductRepository();
$product = $productRepo->findOneBy(array(
    'id' => $id,
    'user_id' => $user // здесь $user - это сущность
));
```