Если параметр равен нулю - получить все объекты, если параметр не равен нулю - получить объекты с параметром.У меня есть запрос:
@Query("{$and : [{$or : [ { $where: '?0 == null' } , { topic : ?0 }]}] }")
List<Event> find(Topic topic);
Когда я запускаю метод с topic = Topic.SPORT, я получаю:
выбросило исключение [Ошибка обработки запроса;вложенное исключение: org.springframework.data.mongodb.UncategorizedMongoDbException: не удалось выполнить запрос с кодом ошибки 16722 и сообщением об ошибке «ReferenceError: SPORT не определено» на локальном сервере: 27017;Вложенное исключение - com.mongodb.MongoQueryException: запрос не выполнен с кодом ошибки 16722 и сообщением об ошибке «ReferenceError: SPORT не определено» на локальном хосте сервера: 27017] с коренной причиной
Но если запустить этот методс topic = null, я получаю все объекты (это правда)
Я рефакторинг этого метода, как показано ниже:
@Query("{$and : [{$or : [ { $where: '\"?0\" == null' } , { topic : ?0 }]}] }")
List<Event> find(Topic topic);
Я могу получить объекты с моим параметром topic = Topic.SPORT,но я не могу получить все объекты, где topic = null, я получил пустой список.Как мне решить эту проблему?