当前位置: 首页 > 知识库问答 >
问题:

QueryDSL中的日期算法

云鸿达
2023-03-14

我想用QueryDSL表达以下(Oracle)查询:

SELECT * FROM entity WHERE entity.created < (sysdate - entity.delayInDays)

即。我想做日期算术。不幸的是,com.mysema.query.types.path.DateTimePath(由QEntity.Entity.Created返回)不包含任何用于加减法的方法,仅用于比较(如before>)。

我找到了com.mysema.query.types.ops.DateTimeOps,但也没有任何帮助。

是我遗漏了什么,还是QueryDSL不支持日期算术?

共有1个答案

娄学文
2023-03-14

你是正确的.目前Querydsl不支持日期算术,但可以为它创建一个问题https://github.com/mysema/Querydsl/issues

 类似资料:
  • 我有一张这样的桌子: 如何在QueryDSL中编写一个表达式来查找仍然有效的条目(creationDate validity_Days)?

  • 我有一个实体,它有一个表示上次活动的日期对象。我想查询一下平均空闲时间。因此在SQL中,类似于: 我试着这样算了一下差别: 我如何以日期/时间差(以秒为单位)来表示这个平均值?

  • 我正在尝试使用QueryDSL计算用户年龄和日期差。 但失败时出现此错误 谢谢

  • 我正在尝试使用QueryDSL计算平均日期差异。 我还尝试了其他方法,例如使用,但它没有返回正确的值。如果我们想要获得以秒为单位的日期差异,我们似乎需要找到一些方法来调用数据库特定的日期/时间差函数,而不仅仅是使用减号。 遗憾的是,在JPQL中计算日期差异似乎是不可能的,所以我想querydsl-jpa在这方面也有限制。因此,我们必须编写一个本机SQL查询,或者找到一些黑客来让QueryDSL生成

  • 问题内容: 我想使用HQL从表中获取过期的实体。像这样: 我无法使用HQL做到这一点。我不想做额外的查询,在Java代码中处理日期等等。这必须在HQL级别上完成。 你能帮我么? 问题答案: 根据您的数据库,这可能非常简单。HQL支持内置的特定于供应商的特性和功能,如果HQL不支持新功能,它还支持通过注册新功能来扩展方言的功能。 假设您使用的是SQLServer(或Sybase)。SQLServer

  • 我将QueryDSL与jpa一起使用,我想查找日期范围之间的记录,如下所示 但between仅支持布尔表达式和字符串表达式