2011-05-25 10 views
16

हैलो मैं अपने उदाहरण में हाइबरनेट का उपयोग कर रहा हूं। बीन टेबल ऑडिट परीक्षण के लिए मैं ऊपरी & निचली सीमाओं को शामिल करने के साथ दिनांक सीमा के बीच ऑडिट परीक्षण प्राप्त करना चाहता हूं। मेरे कोड की तरहहाइबरनेट मानदंड में दिनांक के लिए प्रतिबंध

नीचे
Criteria criteria = session.createCriteria(AuditTrail.class); 

criteria.add(Restrictions.between("auditDate", sDate, eDate)); 

मेरे प्रारंभ दिनांक 25/11/2010 है। और समाप्ति तिथि 25/05/2011 है .पर यह केवल 24/05/2011 तक परिणाम दे रहा है। यह समावेशी खोज नहीं कर रहा है। ऐसा करने का कोई और तरीका। मैं SQL सर्वर का उपयोग कर रहा हूँ।

उत्तर

32

मुझे लगता है कि आपका ऑडिट डेट वास्तव में एक टाइमस्टैम्प है। यदि यह मामला है, तो यह सामान्य है, क्योंकि 25/05/2011 का अर्थ है 25/05/2011 0 बजे (सुबह में)। तो, ज़ाहिर है, 25/05/2011 की तारीख में ऑडिट टाइमस्टैम्प वाली प्रत्येक पंक्ति सुबह 0 बजे के बाद होती है।

मैं आपकी समाप्ति तिथि में 1 दिन जोड़ूंगा, और auditDate >= sDate and auditDate < eDate का उपयोग करूंगा।

criteria.add(Restrictions.ge("auditDate", sDate)); 
criteria.add(Restrictions.lt("auditDate", eDate)); 
1

criteria.add(Restrictions.between("DATE(auditDate)", sDate, eDate)); इस समय का उपयोग समय से अनदेखा करने के लिए करें।

0
criteria.add(Restrictions.ge("fromDate", DateUtil.persianToGregorian(currentDate))); 
criteria.add(Restrictions.le("toDate", DateUtil.persianToGregorian(currentDate))); 

return criteria.list(); 
संबंधित मुद्दे