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,可分页页面);
我找到了解决方案,这是解决方案 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,可分页页面);