Не знаю, насколько это хорошо в архитектурном плане. Как вариант, можно, у сущности Product добавить методы-геттеры или методы-модификаторы, которые будут дергать нужные репозитории.
$product = $productRepository->findOne(100);
$product->getCategories(); // Здесь по принципу lazy load ищем в нужном репозитории
$product->removeCategories();
В результате, так по цепочке можно связываться с нужными хранилищами.