gpt4 book ai didi

java - 如何使用 JPA CriteriaBuilder 指定时间类型?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:36:55 24 4
gpt4 key购买 nike

我有一个表,其中有一列的类型为 dateTime(我使用的是 SQL Server)。我想按 dateTime 列查询表。我想要 dateTime 列中具有相同日期或更晚日期的行,但我想将日期作为参数提供。简而言之,dateTime 必须大于或等于指定日期。

我遇到的问题是,当我尝试使用条件 API 查询 Date 对象时,它只提供第二天的行。我怀疑它试图找到具有相同毫秒或更晚的查找行。在 JPA 查询语言中,我可以指定参数的时间类型 (setParameter("dateColumn",myDate,Temporal.DATE)) 但我在 CriteriaBuilder API 中找不到任何类似的东西。有什么建议吗?

我的代码目前看起来像这样:

cb.greaterThanOrEqualTo(r.<Date>get(fieldName), beginDate));

最佳答案

由于我还没有得到答案,我假设现在除了在您的应用程序中以编程方式解决这个问题。

如果我想查询在本周星期一之后创建的实体,我必须创建一个 Date 对象,将日期设置为星期一并从 Date 对象中清除小时、分钟、秒和毫秒。 Apache Commons Lang 库针对这种情况有一个名为 DateUtils 的帮助程序类。它具有截断方法,可用于从 Date 对象中获取不必要的准确性,因此您可以在 CriteriaBuilder 中使用 greatedThanOrEqual。

关于java - 如何使用 JPA CriteriaBuilder 指定时间类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6928201/

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