2013-03-07 6 views
5

मैं Googling गया है, लेकिन समझ में नहीं आता क्या एन मानदंड एपीआई javax.persistence.criteria.Subquery की विधि सहसंबंधी बुला का परिणाम।मानदंड एपीआई सहसंबंधी

http://www.objectdb.com/api/java/jpa/criteria/Subquery/correlate_CollectionJoin_

इस किताब प्रो JPA2 जावा हठ एपीआई मास्टरिंग से है।

जब इस प्रश्न के लिए मापदंड API क्वेरी परिभाषा बनाने, हम परियोजना के कर्मचारियों विशेषता सहसंबंधी चाहिए और उसके बाद क्रम औसत वेतन की गणना करने के प्रत्यक्ष रिपोर्ट करने के लिए इसे में शामिल हो।

CriteriaQuery<Project> c = cb.createQuery(Project.class); 
Root<Project> project = c.from(Project.class); 
Join<Project,Employee> emp = project.join("employees"); 
Subquery<Number> sq = c.subquery(Number.class); 
Join<Project,Employee> sqEmp = sq.correlate(emp); 
Join<Employee,Employee> directs = sqEmp.join("directs"); 
c.select(project) 
.where(cb.equal(project.type(), DesignProject.class), 
     cb.isNotEmpty(emp.<Collection>get("directs")), 
     cb.ge(sq, cb.parameter(Number.class, "value"))); 

इस लाइन क्या करता है: यह उदाहरण भी आदेश प्रकार की एक बहुरूपी तुलना करने के लिए पथ इंटरफेस की विधि प्रकार() के उपयोग को दर्शाता है?
जुड़ें sqEmp = sq.correlate (ईएमपी);

उत्तर

7

यह आपको मुख्य क्वेरी द्वारा संदर्भित कर्मचारी तक पहुंच प्रदान करता है ताकि आप इसे और उसके टेबल का उपयोग subquery

+0

धन्यवाद में कर सकें। तो यह प्रश्नों को एक साथ चिपकाता है? ऊपर उल्लिखित रेखा को छोड़ने के नतीजे क्या होंगे? – pethel

+1

आप 'emp' जुड़ें वस्तु के भीतर कर्मचारियों पर पहुँच नहीं होगा। इस प्रकार आप 'emp' अपने सबक्वेरी' में उपयोग करने के लिए जहां 'Employee_.directs' संग्रह में शामिल हैं sq' में सक्षम नहीं होगा। – mika

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