【发布时间】:2019-01-31 07:40:33
【问题描述】:
我正在处理一个要求,我将key 和date 作为@RequestParam 传递,以从MSSQL Server db 中获取created_date 和modified_date 之间的记录列表。
这里
key是必需的,date是可选的。
我有一个 GET 请求,将 key 和 date 作为 @RequestParam 发送到 Spring Controller。
@GetMapping(value = "/getValueFromGC", produces = { MediaType.APPLICATION_JSON_VALUE })
public List<GcAppConfig> getValueFromGC(@RequestParam String key, @RequestParam(required = false)@DateTimeFormat(pattern = "dd-MM-yyyy") Date date) {
//if date param is not null
if(date != null) {
return gcAppConfig.getValueFromGC(key,date);
}
//if date param is null fetching the list of all available records
else {
return gcAppConfig.getValueFromGC(key);
}
}
如果date 参数为空,控制器将获取记录。即
网址:localhost:8082/getValueFromGC?key=TOLERANCE&date=
同时以以下格式传递date 参数
网址:getValueFromGC?key=TOLERANCE&date=21-01-2019
这是我的服务gcAppConfig,它绕过date获取created_date和modified_date之间的记录
注意:
created_date和modified_date是 datetime2 格式
@Query(" Select g from GcAppConfig g where g.isActive=1 and g.keys= :keys" +
" and :date >=" +
" CAST(g.createdDate AS DATE) and " +
" :date <= " +
" CAST(g.modifiedDate AS DATE) ")
public List<GcAppConfig> getValueFromGC(@Param("keys")String keys, @Param("date")Date date);
无法解析请求的 CAST 类型:DATE
如有错误,请在 Query 中更正我。欢迎任何建议。 提前致谢。
【问题讨论】:
-
您不允许以 dd-mm-yyyy 格式传递请求参数...您可以将日期作为字符串模式 ddMMyyyy 发送,并在收到 java 中的请求后将其转换...
标签: java sql-server spring-boot