Java HQL中带有日期的限制

Java HQL中带有日期的限制,java,hibernate,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

我有一个像这样的班级

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();
或者您使用:

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