我在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);
}
答案 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 / <强> - 强>)仅选择其中一个配置选项。
然后,您可以使用Date
,Calendar
,Long
,Joda-Time类型或(Spring 4 + JDK 8)java.time
类型中的任何一种作为参数类型。