gpt4 book ai didi

java - 使用 JPA/Hibernate Criteria 在日期之间拉动

转载 作者:搜寻专家 更新时间:2023-10-30 21:36:46 25 4
gpt4 key购买 nike

我正在尝试使用以下代码从 MySQL 表中提取体验对象列表。每个体验都有一个从 datetime 列和一个到 datetime 列,我只想提取今天日期介于从和到之间的行。

我正在使用基于 Hibernate 的 JPA 2.0。

    Date currentDate = new Date();
CriteriaBuilder builder = entityManager.getCriteriaBuilder();
CriteriaQuery<Experience> query = builder.createQuery(Experience.class);
Root<Experience> root = query.from(Experience.class);
builder.between(currentDate, root.get("from"), root.get("to"));
return entityManager.createQuery(query).getResultList();

我的问题是 builder.between() 显然不允许我传递 Date 对象。

我的问题有更好的解决方案吗?

最佳答案

您可以将其作为参数传递:

ParameterExpression<Date> d = builder.parameter(Date.class);
builder.between(d, root.<Date>get("from"), root.<Date>get("to"));
return entityManager.createQuery(query)
.setParameter(d, currentDate, TemporalType.DATE).getResultList();

请注意,在这种情况下,您需要指定所需的时间类型。

您还可以依赖数据库的当前日期:builder.currentDate()builder.currentTimestamp()

关于java - 使用 JPA/Hibernate Criteria 在日期之间拉动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4256561/

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