我有一个类拍卖,例如
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/