Подход с Exception нравится тем, что из объекта исключения можно получить детали, что именно произошло, а если репозиторий возвращает null, то не понятно, что это значит. Это значит, что ошибка в БД случилась, или сущность не найдена в БД, или что-то еще