java - HQL 中的日期限制

标签 java hibernate hql

我有一个类拍卖,例如

public class Auction  extends LightEntity implements IsSerializable 
{
   private long AuctionId;
   private Date StartTime;
   private Date EndTime;
}

我需要使用限制来执行写入hql,该限制选择结束时间尚未完成的所有拍卖。

我的拍卖类 xml 映射文件是

<hibernate-mapping>
    <class name="com.BiddingSystem.Models.Auction" table="AUCTION">
        <id name="AuctionId" type="long">
            <column name="AUCTIONID" />
            <generator class="native" />
        </id>
        <property name="StartTime" type="java.util.Date">
            <column name="STARTTIME" />
        </property>
        <property name="EndTime" type="java.util.Date">
            <column name="ENDTIME" />
        </property>
..
.
.
.
>

最佳答案

首先,您绝对应该遵守 Java 命名约定:Java 中的变量和字段以小写字母开头(auctionId、startTime、endTime)。

现在你的问题是: 要么计算当前时间,并将其作为参数传递给查询:

Date now = new Date();
Query q = session.createQuery("select a from Auction a where a.endTime > :now");
q.setTimeStamp("now", now);
return q.list();

或者你使用expressions supported by HQL :

Query q = session.createQuery("select a from Auction a where a.endTime > current_timestamp()");
return q.list();

关于java - HQL 中的日期限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4913297/

相关文章:

java - Spring Boot + JPA + Hibernate CommandAcceptanceException : Error executing DDL

hadoop - 如何在配置单元中添加一个jar文件

NHibernate HQL 日期函数

java - 使用 SBT 将 Artifact 发布到本地 Maven 仓库并在 ​​Gradle 项目中使用它

java - PHP 中的 & 符号等同于 Java

java - 用于在单个表中查找最新的半唯一行的 Hibernate 实体查询

java - 无法在Spring Boot和Data JPA中使用 native 查询方法访问数据记录

java - 访问者和策略模式中泛型的类型安全

java - Undertow servlet 处理程序丢失了由 keycloak 管理的已通过身份验证且有效的 SecurityContext

hibernate - 如何避免 HQL 和 Criteria 中不必要的选择和联接