【发布时间】:2017-09-07 08:49:36
【问题描述】:
我正在使用带有 jpa 的 QueryDSL,我想查找日期范围之间的记录,就像这样
query.from(timeSheet)
.where(timeSheet.date.between(fromDate, toDate)).fetch();
但是 between 只支持布尔和字符串表达式
【问题讨论】:
-
试试 cast(fromDate as date) 和 cast(toDate as date)。 Querydsl 不提供 datediff 函数
-
非优雅
gt and lt可以在 DB 上有效执行。比较器可能会将无数行获取到客户端(客户端过滤)一分钟后编辑:我在不同@Priyesh 评论的上下文中写作 -
gt , lt , goe, loe 采用布尔表达式或字符串表达式
-
你使用什么版本的
QueryDSL?query的类型是什么?是JPAQuery吗? -
@PriyeshMishra 我对糟糕的支持日期类型感到惊讶。