Запрос Spring jpa не извлекается

#java #mysql #spring #spring-data-jpa

#java #mysql #весна #spring-data-jpa

Вопрос:

Мне нужно выполнить этот запрос, используя spring data jpa

 select substring_index(date_time,' ',1) as date, number,msg,type 
   from sms  where substring_index(date_time,' ',1) 
   between ("parameter1") and ("parameter2") and type=("parameter3")";
  

Метод Java, который я определил, приведен ниже: приведенный выше запрос должен принимать три параметра, приведенные ниже, для извлечения требуемых данных

 public List<Sms> findByDateContainingAndNumberAndMsgAndType( 
                                         String startDate, String endDate,String type);
  

Как я могу это сделать, используя spring data jpa?

Ответ №1:

Здесь вам требуется, чтобы в соответствии с запросом возвращалось более 2 полей, поэтому вам нужно использовать объект для сбора всех значений.

Скорее всего, запрос может возвращать несколько строк, поэтому для сбора их всех нам нужно использовать List .

Поэтому включите что-то подобное в свой контроллер

     @PostMapping("/endpoint")
    public String search(Model model) {
        List<fill_sms_entity_class_name_here> list = sms_service.retrieve(parameter1,2,3);
        model.addAttribute("list", list);
        return "index";
    }
  

Теперь внутри вашего репозитория включите следующий код

 @Query(value="select substring_index(date_time,' ',1) as date, number,msg,type from sms where substring_index(date_time,' ',1) between ?1 and ?2 and type=?3", nativeQuery = true)
List<classname> retrieve(parameter1,2,3);