2013-10-02 5 views
5

क्या क्वेरीरीएसएल में ग्रुपबी प्रोसेसिंग का उपयोग करते समय कुल परिणामों की गिनती प्राप्त करना संभव है? मेरे पास निम्न क्वेरी है:QueryDSL ग्रुपिंग ट्रांसफार्मर में गणना

query.from(catalog) 
.innerJoin(qe).on(catalog.id.eq(qe.itemId)) 
.innerJoin(enterprise).on(enterprise.id.eq(qe.enterpriseId)) 

.leftJoin(catalogPerson).on(catalogPerson.catalogId.eq(catalog.id)) 

.where(catalog.deletionDate.isNull(), qe.enterpriseId.eq(org)) 

.orderBy(catalog.creationDate.desc()) 

.limit(limit) 
.offset(offset) 

.transform(groupBy(catalog.id).as(Projections.constructor(Catalog.class, 
           catalog.id, 
           catalog.name, 
           catalog.code, 
           // //GET THE NUMBER OF CATALOG PERSONS' 
           ))); 

और मैं कुछ कैटलॉग से संबंधित व्यक्तियों की गिनती प्राप्त करना चाहता हूं।

धन्यवाद

उत्तर

5

अगर आप की जरूरत है आप बच्चे को रिकॉर्ड में से किसी की जरूरत नहीं है, तो इस तरह परिवर्तन (केवल चित्र) द्वारा समूह के बिना क्वेरी व्यक्त

query.from(catalog) 
.innerJoin(qe).on(catalog.id.eq(qe.itemId)) 
.innerJoin(enterprise).on(enterprise.id.eq(qe.enterpriseId)) 
.leftJoin(catalogPerson).on(catalogPerson.catalogId.eq(catalog.id)) 
.where(catalog.deletionDate.isNull(), qe.enterpriseId.eq(org)) 
.orderBy(catalog.creationDate.desc()) 
.limit(limit) 
.offset(offset) 
.groupBy(catalog.id) 
.list(Projections.constructor(Catalog.class, 
          catalog.id, 
          catalog.name, 
          catalog.code, 
          catalogPerson.count())); 

परिवर्तन द्वारा समूह उपयोगी है व्यक्तिगत परिणाम पंक्तियों को एकत्रित करने के लिए।

+3

धन्यवाद तिमो। बस एक छोटा सा सुझाव। यह अच्छा होगा अगर कोई वास्तविक जीवन उदाहरणों के लिए "QueryDSL व्यंजनों" को विस्तृत कर सकता है, जिसका दस्तावेज़ीकरण में उल्लेख नहीं किया गया है, इस तरह। – Nedo

+0

अच्छा विचार। इस उदाहरण के लिए आप किस नुस्खा का शीर्षक सुझाएंगे? Projections.constructor और गिनती() इसे थोड़ा सा विशेष बनाते हैं, शेष काफी सामान्य Querydsl SQL उपयोग है। –

+0

कुछ "जैसे बच्चे को मूल इकाई में गिना जाता है" या "मूल इकाई में एकत्रित गणना" की तरह कुछ ... =) मैं स्टैक ओवरफ्लो पर यहां से कुछ असामान्य क्वेरीरीएसएल निर्माण को फिर से खोलने की कोशिश करूंगा। – Nedo

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