【问题标题】:Pass java.util.Date using as @Param in query method在查询方法中使用 @Param 传递 java.util.Date
【发布时间】:2015-09-08 03:40:39
【问题描述】:

我在 Spring Boot 存储库的查询方法中使用了 java.util.Date 属性。但它给了我“无法从类型 java.lang.String 转换为类型 @org.springframework.data.repository.query.Param java.util.Date for value '2014-11-27”错误。我在下面提到了 Entity 类和 Repository 类的代码段。这里会有什么问题?

实体类

@Column(name="date")
@Temporal(TemporalType.DATE)
private Date date;

存储库

public interface WeatherRepository extends CrudRepository<Weather, String> {
List<Weather> findAllByDate(@Param("date") Date date);
Weather findWeatherByCity(@Param("city") String city);

}

【问题讨论】:

标签: java spring jpa spring-boot


【解决方案1】:

尝试以这种格式发送日期 - 11/27/2014 (MM/dd/yyyy)。这应该能够从这种格式的请求 URI 中解析它。请尝试告诉我。

【讨论】:

    【解决方案2】:

    您可以在date 参数上使用@org.springframework.format.annotation.DateTimeFormat 注释来明确指定格式。在注释中,您可以使用

    • pattern 指定任意模式(遵循SimpleDateFormat 模式)
    • iso 使用标准 ISO 格式之一
    • style 用于日期和时间格式(Short/ Medium/Long/F ull/-)

    只选择一个配置选项。

    然后您可以使用DateCalendarLong、Joda-Time 类型或(Spring 4 + JDK 8)java.time 类型中的任何一个作为参数类型。

    【讨论】:

      猜你喜欢
      • 2016-06-24
      • 1970-01-01
      • 1970-01-01
      • 2019-05-31
      • 2014-05-20
      • 2018-10-24
      • 2014-11-04
      • 2011-08-31
      • 1970-01-01
      相关资源
      最近更新 更多