Как я могу заменить использование запроса примером в Spring Data JDBC?

#java #spring #spring-data #spring-data-jdbc #query-by-example

Вопрос:

На мой взгляд, я отправляю асинхронный запрос контроллеру с данными Json следующим образом:

 {
   "filters":{
      "someField":"someValue",
      "someField":"someValue",
      "someField":null,
      "someField":null,
   }
}
 

Но данные могут быть разными.
И у меня есть объект заказа с теми же полями, поэтому я могу преобразовать его из Json в POJO

После этого, используя JPA, я могу сделать следующее:

 Example<Order> orderExample = Example.of(orderFromJson);
orderRepository.findAll(orderExample);
 

Но я использую spring-data-jdbc, который его не поддерживает, что может его заменить?

Ответ №1:

В подобных случаях, когда прямая поддержка не предлагается, правильный подход заключается в том, чтобы JdbcTemplate ввести или NamedParameterJdbcTemplate ввести и построить необходимый SQL на основе информации о фильтре. Вы можете сделать этот метод пользовательским методом репозитория.