我的域的“日期”字段已更新,我想以此为依据
@Column(name = "updated")
Date updated;
我有一个表示日期的Java Date对象,该对象已由端点的控制器传递。
Date day;
和代表我的数据的存储库
public interface DataRepository extends CrudRepository<Data, Long> {
List<Data> findByLastUpdatedInDate(Date date);
}
显然上述方法不起作用,但是有类似的东西吗?还是我必须在手动搜索最后一个条目之间进行查找?
编辑:这是我一天的方式; dateString由控制器传递。
SimpleDateFormat dateFormatIn = new SimpleDateFormat("yyyy-MM-dd");
Date day = dateFormatIn.parse(dateString);
答案 0 :(得分:3)
您快到了。如果我正确阅读了文档,则可能会稍作调整:
Data data = dataRepository.findTopByUpdatedBetweenOrderByUpdatedDesc(start, stop);
来源:https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.limit-query-result
答案 1 :(得分:1)
您可以使用@Query注释对方法进行注释并编写HQL查询
@Query("select d from Data d where d.updated= :date")
List<Data> findByLastUpdatedInDate(@Param("date") Date date);
答案 2 :(得分:0)
我希望有人能找到更优雅的东西,但是现在我正在使用的是
List<Data> findByUpdatedBetweenOrderByUpdatedDesc(Date start, Date stop);
并使用
转换日期Date start = new Date(day.getTime());
Date stop = new Date(day.getTime() + 86400000L);
获得我的参赛资格
Data data = dataRepository.findByUpdatedBetweenOrderByUpdatedDesc(start, stop).get(0);