在查询方法

时间:2015-09-08 03:40:40

标签: java spring jpa spring-boot

我在spring boot repository的query方法中使用了java.util.Date属性。但它给了我“无法从类型java.lang.String转换为类型@ org.springframework.data.repository.query.Param java.util.Date值'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);

}

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:5)

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

  • pattern指定任意模式(遵循SimpleDateFormat模式)
  • iso使用标准ISO格式之一
  • style用于日期和时间格式的简写双字母代码( S hort / M edium / L ong /的˚F ULL / <强> -

仅选择其中一个配置选项。

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