2013-01-16 35 views
5

निम्न फ़ंक्शन ठीक काम करता है, लेकिन मैं इसे परिणामों को पहले parent_id द्वारा क्रमबद्ध करना चाहता हूं, और फिर क्रमशः।स्क्रिप्टिंग स्लिक क्वेरी परिणाम को अभिव्यक्ति के लिए

def getTree = for { 
    (a, c) <- Activities leftJoin Clients on (_.id === _.id_a) 
} yield (a.id, a.label, a.parent_id, a.order, c.id.?, a=c.name) 

मैं स्लिम का उपयोग करके ऐसा कैसे कर सकता हूं?

उत्तर

10

सामान्य संग्रह के साथ पसंद है?

getTree.sortBy(r => r._3 ~ r._4) 
+1

कैसे सहज ज्ञान युक्त टपल वाक्य रचना है ... नहीं (मेरे प्रश्न पर selectStatement बुला द्वारा सत्यापित)। बहुत बुरा पुराना ऑर्डर द्वारा (nameThatHasMeaning, otherMeaningfulName.desc) को sortBy (x => x._3 ~ x._4) वाक्यविन्यास के पक्ष में बहिष्कृत कर दिया गया है। स्लिम लेखक के पास ऐसा करने का एक कारण था, लेकिन अंतिम उपयोगकर्ताओं को बॉयलरप्लेट और व्यर्थ गिनती का सामना करना पड़ता है जिसके परिणामस्वरूप टुपल संख्या होती है। – virtualeyes

+0

आप कुछ केस क्लास इंस्टेंस 'और' getTree.sortBy (r => r.parent_id ~ r.order) 'उपज' कर सकते हैं, लेकिन केस क्लास की वास्तविक घोषणा बॉयलरप्लेट है। हो सकता है कि 'टुपल' नामक, '(' name1 -> value1, 'name2 -> value2) जैसे कन्स्ट्रक्टर के साथ '' और लागू करें जैसे नाम (नाम: प्रतीक)' कोर स्कैला में उपयोगी होगा? उदाहरण के लिए: 'उपज (ए.आईडी, ए। लेबल, 'parent_id -> a.parent_id,' ऑर्डर -> a.order, c.id।?, A = c.name) ', फिर' getTree.sortBy (आर => आर ('parent_id) ~ आर (' ऑर्डर)) ' – idonnie

+0

क्या यह उत्तर अभी भी Slick 2.1 के लिए मान्य है? आईडीईए ~ ऑपरेटर नहीं ढूंढ रहा है। या क्या मुझे कुछ जादू आयात विवरण याद आ रहा है? –

1

स्लिक 2.1 के साथ, मैंने पाया यह काम करने के लिए:

myQuery.sortBy(r => (r._3, r._4)) 

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

  • कोई संबंधित समस्या नहीं^_^