2 回答
TA贡献1943条经验 获得超7个赞
您发布的代码存在多个问题,更重要的是,这些问题无法编译。
Date convertDate = new Date
-这显然是错误的。无论如何,都存在其他几个问题:
您似乎传入了一个路径变量pathDate
,我认为您必须使用该变量进行搜索。该方法的主体中从未使用过此方法。相反,您(以错误的方式)创建了一个名为的新变量convertDate
。没有明显的原因和用法,您将继续转换为字符串。
然后,您继续创建一个名为的新变量date
,尝试使用该strDate
变量进行初始化。所有这些行动从根本上是错误的。同样,从String到date的转换也是错误的(因此为什么会收到IllegalArgumentException)。
您不应该使用父类(DateFormat
)执行日期转换,而是需要使用它的某些实现(DateFormat
很抽象,直接实现是SimpleDateFormat
)来执行转换。
基于上述内容,您应该执行以下操作:
从path变量中获取日期。
使用SimpleDateFormat转换为日期对象(或者,您可以使用Java 8的LocalDate API)
然后将此日期传递给您的服务方法,该服务方法将从存储库中获取结果。
还有一些注意事项。不需要这样做:
Optional<List<Product>> optional = Optional.of(dateofPurchaseList);
假设您的服务方法返回产品列表或空列表(如果未找到),则后继dateofPurchaseList
将永远不会为null。使用of
静态创建器(假定为非null)将其包装为可选选项是错误的。您应该简单地调用List#isEmpty
以仅检查返回的列表是否为空或包含任何值。
TA贡献1799条经验 获得超6个赞
在存储库界面中使用它
@Query("select e from Entity where e.dateOfPurchase like %:dateOfPurchase%") List<Entity> findByDateOfPurchase(@Param("dateOfPurchase ")String dateOfPurchase );
添加回答
举报