Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 如何在Spring Boot中找到一个日期间隔?_Spring Boot_Spring Data Jpa_Jpa 2.0_Jpql_Java Ee 8 - Fatal编程技术网

Spring boot 如何在Spring Boot中找到一个日期间隔?

Spring boot 如何在Spring Boot中找到一个日期间隔?,spring-boot,spring-data-jpa,jpa-2.0,jpql,java-ee-8,Spring Boot,Spring Data Jpa,Jpa 2.0,Jpql,Java Ee 8,这是我的实体: 这是我的存储库: @Query(value="SELECT * FROM operation WHERE date_operation BETWEEN 'dat1' AND 'dat2'", nativeQuery =true) public Page<Operation> AlllistByDate(@Param("dat1")Date dt1, @Param("dat2")Date dat2, Pag

这是我的实体:

这是我的存储库:

@Query(value="SELECT * FROM operation WHERE date_operation  BETWEEN 'dat1' AND 'dat2'", nativeQuery =true)
public Page<Operation> AlllistByDate(@Param("dat1")Date dt1, @Param("dat2")Date dat2, Pageable page);   
@Query(value=“SELECT*FROM operation WHERE date_'dat1'和'dat2'之间的操作,nativeQuery=true)
公共页面AlllistByDate(@Param(“dat1”)日期dt1,@Param(“dat2”)日期dat2,可分页页面);
这是我的控制器:

@RequestMapping(value="operationbyDate",  method = RequestMethod.GET)
public String  operationbyDaten(Model model, @RequestParam(name="page", defaultValue =  "0")int p,
        @RequestParam(value="dat1",required=false) Date dat1,
        @RequestParam(value="dat2",required=false) Date dat2) throws ParseException {

    try {
        Page<Operation> operation = operationDao.AlllistPageOp(dat1, dat2, p, 150);
        int pageCount = operation.getTotalPages();
        int [] pages =  new  int [pageCount];
        for (int i = 0; i < pageCount; i++) 
            pages[i]=i;
        model.addAttribute("pages", pages);
        model.addAttribute("pagecourente", p);
        model.addAttribute("dat1",dat1);
        model.addAttribute("dat2",dat2);

        model.addAttribute("listOperbydate", operation);
        
    } catch (Exception e) {
        // TODO: handle exception
        return  "redirect:/operationbyDate?dat1="+dat1+"&error="+e.getMessage();
    }
    return "empl/seacbydate";
}
@RequestMapping(value=“operationbyDate”,method=RequestMethod.GET)
公共字符串操作ByDaten(模型模型,@RequestParam(name=“page”,defaultValue=“0”)int p,
@RequestParam(value=“dat1”,required=false)日期dat1,
@RequestParam(value=“dat2”,required=false)日期dat2)引发异常{
试一试{
页面操作=操作dao.AlllistPageOp(dat1,dat2,p,150);
int pageCount=operation.getTotalPage();
int[]pages=新int[pageCount];
for(int i=0;i
以下是基于ThymileAF的html搜索表单:

<form class="form-inline ml-3"  th:action="@{operationbyDate}" method="get">
                      <div class="input-group input-group-sm">
                        <input class="form-control form-control-navbar"  type="date"   name="dat1" th:value="${dat1}" placeholder="Search" aria-label="Search">
                        <input class="form-control form-control-navbar"  type="date"   name="dat2" th:value="${dat2}" placeholder="Search" aria-label="Search">
                     
                        <div class="input-group-append">
                          <button class="btn btn-navbar" type="submit">
                            <i class="fas fa-search"></i>
                          </button>
                        </div>
                      </div>
                    </form>
                    

在我的数据库中,我的数据介于2020年8月25日和2020年8月28日之间

当我输入值时:

我在执行后得到这个结果:


有人能帮我吗?

您需要使用
@DateTimeFormat
注释,并提供格式模式参数,以便将字符串转换为
日期

@RequestMapping(value="operationbyDate",  method = RequestMethod.GET)
public String  operationbyDaten(Model model, @RequestParam(name="page", defaultValue =  "0")int p,
        @RequestParam(value="dat1",required=false) @DateTimeFormat(pattern = "yyyy-MM-dd") Date dat1,
        @RequestParam(value="dat2",required=false) @DateTimeFormat(pattern = "yyyy-MM-dd") Date dat2)
        throws ParseException {
 ...
}

您需要使用
@DateTimeFormat
注释,并为将字符串转换为
Date

@RequestMapping(value="operationbyDate",  method = RequestMethod.GET)
public String  operationbyDaten(Model model, @RequestParam(name="page", defaultValue =  "0")int p,
        @RequestParam(value="dat1",required=false) @DateTimeFormat(pattern = "yyyy-MM-dd") Date dat1,
        @RequestParam(value="dat2",required=false) @DateTimeFormat(pattern = "yyyy-MM-dd") Date dat2)
        throws ParseException {
 ...
}
修正后

休眠:从操作中选择*,其中日期\u操作在'dat1'和'dat2'之间的限制

更正后,他接受并执行搜索,但交易未显示

校正后

休眠:从操作中选择*,其中日期\u操作在'dat1'和'dat2'之间的限制

更正后,他接受并执行搜索,但交易未显示


我找到了解决方案,这是解决方案

1。控制器

@RequestMapping(value="/consulteroperation")
public String findbetwenn(Model model, @RequestParam(name="page", defaultValue =  "0")int p,
@RequestParam(value="dat1",required=false)@DateTimeFormat(pattern = "yyyy-MM-dd") Date dat1, 
@RequestParam(value="dat2",required=false)@DateTimeFormat(pattern = "yyyy-MM-dd") Date dat2) {
    
    try {
        Page<Operation> operation = operationDao.AlllistPageOp(dat1, dat2, p, 150);
        //List<Operation> operation  = operationDao.listSimple();
        model.addAttribute("op", operation);
    } catch (Exception e) {
        return  "redirect:/operationbyDate?dat1="+dat1+"&error="+e.getMessage();
    }
    
    return "empl/seacbydate";
    
}
@RequestMapping(value=“/consulteroperation”)
公共字符串findbetwenn(模型模型,@RequestParam(name=“page”,defaultValue=“0”)int p,
@RequestParam(value=“dat1”,required=false)@DateTimeFormat(pattern=“yyyy-MM-dd”)Date dat1,
@RequestParam(value=“dat2”,required=false)@DateTimeFormat(pattern=“yyyy-MM-dd”)Date dat2){
试一试{
页面操作=操作dao.AlllistPageOp(dat1,dat2,p,150);
//List operation=operationDao.listSimple();
model.addAttribute(“op”,操作);
}捕获(例外e){
return“redirect:/operationbyDate?dat1=“+dat1+”&error=“+e.getMessage();
}
返回“emp/seacbydate”;
}
2。存储库(Dao)

@Query(value=“SELECT*FROM operation WHERE date\u operation在?和?之间,nativeQuery=true)
公共页面AlllistByDate(@Param(“dat1”)日期dt1,@Param(“dat2”)日期dat2,可分页页面);
  • html

    
    

  • 我找到了解决方案,这是解决方案

    1。控制器

    @RequestMapping(value="/consulteroperation")
    public String findbetwenn(Model model, @RequestParam(name="page", defaultValue =  "0")int p,
    @RequestParam(value="dat1",required=false)@DateTimeFormat(pattern = "yyyy-MM-dd") Date dat1, 
    @RequestParam(value="dat2",required=false)@DateTimeFormat(pattern = "yyyy-MM-dd") Date dat2) {
        
        try {
            Page<Operation> operation = operationDao.AlllistPageOp(dat1, dat2, p, 150);
            //List<Operation> operation  = operationDao.listSimple();
            model.addAttribute("op", operation);
        } catch (Exception e) {
            return  "redirect:/operationbyDate?dat1="+dat1+"&error="+e.getMessage();
        }
        
        return "empl/seacbydate";
        
    }
    
    @RequestMapping(value=“/consulteroperation”)
    公共字符串findbetwenn(模型模型,@RequestParam(name=“page”,defaultValue=“0”)int p,
    @RequestParam(value=“dat1”,required=false)@DateTimeFormat(pattern=“yyyy-MM-dd”)Date dat1,
    @RequestParam(value=“dat2”,required=false)@DateTimeFormat(pattern=“yyyy-MM-dd”)Date dat2){
    试一试{
    页面操作=操作dao.AlllistPageOp(dat1,dat2,p,150);
    //List operation=operationDao.listSimple();
    model.addAttribute(“op”,操作);
    }捕获(例外e){
    return“redirect:/operationbyDate?dat1=“+dat1+”&error=“+e.getMessage();
    }
    返回“emp/seacbydate”;
    }
    
    2。存储库(Dao)

    @Query(value=“SELECT*FROM operation WHERE date\u operation在?和?之间,nativeQuery=true)
    公共页面AlllistByDate(@Param(“dat1”)日期dt1,@Param(“dat2”)日期dat2,可分页页面);
    
  • html