gpt4 book ai didi

java - Spring Data JPA - 如何仅使用月份和日期从日期列中获取数据?

转载 作者:搜寻专家 更新时间:2023-10-31 08:25:13 27 4
gpt4 key购买 nike

我有一个使用 mysql 的简单 Spring Data JPA 项目,我需要获取与日期和月份匹配的所有寄存器。我需要过滤的列是 Datetime 类型。

1935-12-08 00:00:00

如果我想在数据库级别执行此操作,它工作正常:

SELECT * FROM my_database.event where event_date LIKE '%-12-08%';

它将日期视为字符串。现在我需要在我的存储库中执行此操作,但似乎没有任何效果。我尝试了基本的:

List<Event> findByEventDateLike(
@Param("eventDate") Date eventDate);

但它说它返回一个非法参数异常,因为它是一个 Date 对象。我尝试了其他组合,但显然 spring data jpa 无法将日期与部分信息进行比较。

注意:为了保持简洁,我试图避免使用 @Query 语句,但如果这是唯一的方法,那么它就是一个有效的答案。

我该怎么做?

最佳答案

如果您的 JPA 提供程序是 Hibernate,那么您可以在 JPQL (HQL) 查询中使用 yearmonth(和 other funcs),例如:

@Query("select e from Event e where year(e.eventDate) = ?1 and month(e.eventDate) = ?2")
List<Entity> getByYearAndMonth(int year, int month);

关于java - Spring Data JPA - 如何仅使用月份和日期从日期列中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47719439/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com