Java Spring jpa查询未获取

Java Spring jpa查询未获取,java,mysql,spring,spring-data-jpa,Java,Mysql,Spring,Spring Data Jpa,我需要使用spring数据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")"; 我

我需要使用spring数据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);
findByDateContainingAndNumberAndMsgAndType()的公共列表
字符串开始日期、字符串结束日期、字符串类型);

如何使用spring数据jpa实现这一点?

这里,您需要根据查询返回两个以上的字段,因此需要使用对象收集所有值

很可能查询会返回多行,因此要收集它们,我们需要使用
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";
    }
@PostMapping(/endpoint)
公共字符串搜索(模型){
列表=sms_服务检索(参数1,2,3);
model.addAttribute(“列表”,列表);
返回“索引”;
}
现在在您的存储库中包含以下代码

@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);
@Query(value=“选择子字符串索引(日期时间)”,1)作为日期、数字、消息,从sms中键入,其中子字符串索引(日期时间)”,1)介于?1和?2之间,类型=?3“,nativeQuery=true)
列表检索(参数1,2,3);