2015-02-06 45 views
1

我想獲取匹配今日但忽略年的所有記錄數據庫中的日期是這樣的1980-11-14。只想比較每月和每天的記錄而不是年份。我試過使用Criteria但它不工作這裏是我的代碼。 `Date date = new Date(); //您的日期 日曆cal = Calendar.getInstance(); cal.setTime(date); int month = cal.get(Calendar.MONTH); int day = cal.get(Calendar.DAY_OF_MONTH);休眠查詢獲取日期忽略年的記錄

Calendar calendar = Calendar.getInstance(); 
    calendar.set(Calendar.MONTH,month); 
    calendar.set(Calendar.DAY_OF_MONTH, day); 

    Calendar fromDate = calendar.getInstance(); 
    calendar.set(Calendar.MONTH,month); 
    calendar.set(Calendar.DAY_OF_MONTH, day); 

    Calendar toDate = calendar.getInstance(); 

    Criteria criteria=session.createCriteria(Add_Follower.class); 
    criteria.add(Restrictions.eq("follow_uInfo.id", uid)); 
    criteria.add(Restrictions.between("following_uInfo.dob",fromDate,toDate)); 
     users=criteria.list();` 
+0

好,ABHI,發生了什麼?你有沒有得到它的工作? – 2015-02-09 11:17:25

+0

我geting異常org.hibernate.QueryException:無法解析屬性:Following_uInfo:com.abhi.model.Add_Follower – 2015-02-09 11:36:41

+0

@MikeNakis我只是想知道設置恆定的一年它怎麼會工作我試着給它鑄造異常java.util.GregorianCalendar不能轉換爲java.util.Date。 – 2015-02-09 11:54:05

回答

1

我有一個命名查詢和使用 「提取」 做到了,

在這個例子生日:

SELECT p FROM Person p 
WHERE EXTRACT(DAY FROM p.gebdat) = EXTRACT(DAY FROM NOW()) 
AND EXTRACT(MONTH FROM p.gebdat) = EXTRACT(MONTH FROM NOW()) 
ORDER BY p.nachname, p.vorname