java - 在 Spring Boot 中将日期作为请求参数处理出现错误

标签 java sql-server spring-boot

我正在处理一个要求,我将 keydate 作为 @RequestParam 传递,以获取之间的记录列表来自 MSSQL Server 数据库的 created_datemodified_date

here key is mandatory and date is optional.

我有一个GET请求,它将keydate作为@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参数为空, Controller 将获取记录。即

URL: localhost:8082/getValueFromGC?key=TOLERANCE&date=

同时以以下格式传递日期参数

Url:getValueFromGC?key=TOLERANCE&date=21-01-2019

这是我的服务gcAppConfig,它绕过date来获取created_datemodified_date之间的记录

Note:created_date and modified_date are in datetime2 format

@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);

Could not resolve requested type fo CAST: DATE

如有错误,还请在查询中指正。欢迎任何建议。 提前致谢。

最佳答案

它与您的存储库无关。错误发生在Controller 级别。您真的必须使用 java.sql.Date 吗?如果您使用 java.util.Date ,它应该可以正常工作,特别是使用参数的 @DateTimeFormat("yyyy-MM-dd") 注释。

关于java - 在 Spring Boot 中将日期作为请求参数处理出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54455548/

相关文章:

java - 盒子碰撞检测和弹跳

java - 如何将 mcrypt-generic-init key 大小从 8 增加到 16?

sql - 有没有一种方法可以从 SQL 查询中获取总数?

sql-server - 如何使用哈希字节(如校验和)?

mysql - SQL查询需要很长时间才能响应

java - Spring引导 Autowiring 在配置类中给出null

java - 使用 Joda 和 Hibernate 保留 IS08601 日期格式

java - 将图像序列化为字符串

spring - 使用 Kotlin 解决 Spring Boot Rest Controller 中的单例

java - Spring Boot + Spring Data JPA + H2 :Error creating bean with name 'entityManagerFactory' defined in class path resource