2010-05-27 21 views
7

मैं हाइबरनेट मानदंड का उपयोग कर रहा हूँ और खंड कार्यात्मक इस एसक्यूएल के समान ही है कि द्वारा आदेश-एक जोड़ना चाहते हैं:हाइबरनेट मानदंड का उपयोग करके मैं एक जटिल आदेश कैसे जोड़ सकता हूं?

order by abs(dateSubmitted - 125234234) 

कहाँ dateSubmitted एक लंबी और संख्या यह से घटाया उपयोगकर्ता के आपूर्ति हो जाएगा (एक तिथि के रूप में)। मैं उपयोगकर्ता द्वारा प्रदान की गई तारीख से उनकी 'दूरी' द्वारा रिकॉर्ड ऑर्डर करने का प्रयास कर रहा हूं।

मैं

criteria.addOrder("abs(dateSubmitted - " + getDateInput() + ")"); 

की कोशिश की है, लेकिन यह काम नहीं करता।

क्या यह संभव है? या मुझे एचक्यूएल के लिए मानदंड छोड़ना होगा? मैंने इसे सफलतापूर्वक एचक्यूएल में किया है, लेकिन अगर स्थिरता के लिए संभव हो तो मानदंडों के साथ रहना चाहूंगा।

उत्तर

10

हो सकता है कि इस तरह से, अपने खुद के आदेश वर्ग बनाने के लिए:

http://blog.tremend.ro/2008/06/10/how-to-order-by-a-custom-sql-formulaexpression-when-using-hibernate-criteria-api/

मैं उपयोग करने के लिए इस :)

+1

अच्छा जा रहा हूँ। मुझे लगता है कि यह थोड़ा कम है, हालांकि यह अनुमान लगाया गया है कि यह काफी कम है। मैं इसे ले जाऊँगा। – DLaw

संबंधित मुद्दे