jpql - Spring JPQL:特定月份的日期
问题描述
我将 SQL Server 与 SpringBoot 2.5 一起使用。我有以下实体:
@Data
public Post{
Integer id;
LocaleDate start;
...
}
我需要得到Post
一个特定月份的所有内容。我知道我可以使用Query
like
@Query('select * from Posts WHERE MONTH (start)=MONTH (:timeStamp)')
List<Post> findByMonth(LocalDate timeStamp);
BETWEEN
但是如果我在 Java 中计算之前的日期,我也可以使用该表达式,例如
@Query('select * from Posts WHERE start BETWEEN :tStart AND :tEnd)')
List<Post> findByMonth(LocalDate tStart, LocaleDate tEnd);
最后但并非最不重要的一点是,我可以使用Specification
SpringframeWork 中CriteriaBuilder cb
的cb.between
从 DB 的角度来看,这三种方法都是一样的还是它们有一些陷阱?
我问的主要原因是这findByMonth
似乎很有说服力,但我不知道其他查询是否可以更好地执行(在数据库级别)。
解决方案
推荐阅读
- c# - 为什么我的 csharp 代码返回 html 代码而不是 Python 或 curl 等 json 数据
- amazon-web-services - 如何在 SSM 文档中使用 StringMap 参数?
- javascript - React Hooks useState - 推荐什么,每个组件只有一个状态或多个状态?
- python-3.x - 从模块动态导入类而不加载整个模块
- mapbox - Mapbox:自动飞到添加的源
- django - 返回用户后保存在数据库中?
- git - Emacs 打开上一个版本 - Git vs Mercurial
- firebase - 将数据从 SQL base 重构到 Realtime Firebase
- sql-server - @@ROWCOUNT 和数据库检查的问题
- unit-testing - TFS 2015 在同一台机器上运行 vNext 构建和测试