का उपयोग करके अलग-अलग परिणाम कैसे प्राप्त करें I Grails में मानदंड का उपयोग करके अलग-अलग माता-पिता को लोड करने का प्रयास कर रहा हूं। क्वेरी निम्नलिखितअनुमान और मानदंड
क्वेरी प्रकार है:
def criteria = Parent.createCriteria();
results = criteria.list(max:params.max, offset:params.offset){
projections{ groupProperty('id') }
children{
books{
like('title',"%book")
}
}
order("id","asc")
}
डोमेन वर्ग
class Parent {
String name
static hasMany = [children:Child]
static constraints = {
}
}
class Child {
String name
Parent parent
static belongsTo = [parent:Parent]
static hasMany = [books:Book]
static constraints = {
}
}
class Book {
String title
Child child
static belongsTo = [child:Child]
static constraints = {
}
}
प्रश्न: मैं अलग जनक पंक्तियाँ प्राप्त करने में असमर्थ हूँ।
अन्य अपनाया दृष्टिकोण और उनके परिणाम: मैं जानता हूँ कि क्यों groupProperty काम नहीं कर रहा donot। मैंने समूहप्रॉपर्टी के बजाय अनुमानों में अलग-अलग प्रयास किए हैं और यह भी उपयोगी नहीं है! अगर मैं criteria.listDistinct बजाय criteria.list का उपयोग तो मैं अलग जनक पंक्तियाँ प्राप्त करने में सक्षम हूँ, लेकिन पहले दृष्टिकोण पृष्ठांकन के लिए अतिरिक्त क्वेरी से TOTALCOUNT प्राप्त करने के लिए आवश्यकता होती है। इसलिए मैं अग्रिम
आपका अंतिम लक्ष्य क्या है? क्या आप उन माता-पिता की एक सूची प्राप्त करने की कोशिश कर रहे हैं जिनके पास ऐसे बच्चे हैं जिनके पास एक विशिष्ट शीर्षक से मेल खाने वाली पुस्तकें हैं? – Pat
असल में मैं सभी माता-पिता को अनूठा करना चाहता हूं, अद्वितीय, जिनके पास किताबें हैं जिनमें '% एम%' शीर्षक है। और समस्या समूहप्रोपर्टी है। परिणामों में अलग-अलग माता-पिता नहीं होते हैं। यदि यह क्वेरी को समझना मुश्किल है उसके बाद निम्न "बच्चों { बच्चों { ('नाम', जैसे" पऊ% ") } } आदेश (" आईडी "," एएससी ") – Rehman
रिश्तों के साथ ऊपर उल्लिखित क्वेरी बराबर की जगह: अभिभावक: चाइल्ड [1: एन] और चाइल्ड: बुक [1: एन] – Rehman