ऐसा लगता है कि आप एक गिनती प्राप्त करने के लिए आदेशित सूची प्राप्त करने के लिए किए गए मानदंड का पुन: उपयोग करने का प्रयास कर रहे हैं।
डेटा पुनर्प्राप्त करने और गिनने के लिए समान मानदंड का उपयोग करने की बजाय, आप शायद स्वतंत्र मानदंड बनाने से सबसे अच्छे हैं।
उपयोग
Criteria orderCriteria= session.createCriteria(Libro.class)
.addOrder(Order.asc("ID"));
क्रम में सूची प्राप्त है, और
Criteria countCriteria= session.createCriteria(Libro.class)
.setProjection(Projections.rowCount());
का उपयोग मायने रखता है पाने के लिए कर सकते हैं।
दो उद्देश्यों के लिए एक ही मानदंड का उपयोग करने के लिए, आपको उपयोग के बीच राज्य को बदलना होगा। मुझे यकीन नहीं है कि ऑर्डर कैसे निकालें (या यदि आपको वास्तव में गिनती करने के लिए आवश्यकता है)। प्रक्षेपण को हटाने के लिए केवल setProjection(null)
की आवश्यकता है।
स्रोत
2010-03-05 05:14:50
हम्म ... यदि आप इसे नहीं चाहते हैं तो आप 'addOrder()' क्यों कहते हैं? –
@PascalThivent अच्छा बिंदु। कभी-कभी आप एक अंतर्निहित क्रम (उदा। फैक्ट्री विधि से) के साथ एक मानदंड वस्तु वापस कर सकते हैं और आप उस पूर्वनिर्धारित क्रम को हटाना चाहेंगे। यही कारण है कि मैं इस सवाल में आया था। –