2011-02-06 50 views
2

我有一個類拍賣喜歡限制在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> 
.. 
. 
. 
. 
> 

回答

6

首先,你一定要尊重的Java命名約定:變量和字段開始在Java(auctionId,開始時間小寫字母,時間結束)。

現在你的問題: 要麼你計算當前的時間,並作爲參數傳遞到您的查詢:

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();