क्या हाइबरनेट प्रक्षेपण उपनाम भी काम करते हैं? मैं इसे कसम खाता हूँ बस नहीं करता है। कम से कम, ऐसा नहीं करता है जो मैं अपेक्षा करता हूं।हाइबरनेट मानदंड प्रक्षेपण उपनाम का उपयोग नहीं किया जा रहा है
select
sum(this_.number_of_points) as y0_,
this_.person_id as y1_
from
PERSON_PROGRAM_ACTIVITY this_
group by
this_.person_id
order by
this_.number_of_points desc
यह सब पर अन्य नाम का उपयोग करने के लिए प्रतीत नहीं होता:
return sessionFactory.getCurrentSession()
.createCriteria(PersonProgramActivity.class)
.setProjection(Projections.projectionList()
.add(Projections.alias(Projections.sum("numberOfPoints"), "number_of_points"))
.add(Projections.groupProperty("person.id")))
.setFirstResult(start)
.setFetchSize(size)
.addOrder(Order.desc("numberOfPoints"))
.list();
यहाँ एसक्यूएल कि यह उत्पन्न करता है:
यहाँ जावा है। मुझे लगता है कि उपनाम सेटिंग का मतलब यह होगा कि sum(this_.number_of_points)
number_of_points
के रूप में उपनामित किया जाएगा और y0_
नहीं होगा। क्या कोई चाल है जो मुझे याद आ रही है?
धन्यवाद।
+1 मैं रूप में अच्छी तरह बात इस तरह का देखा है, मैं सबक्वेरी के साथ लगता है होना चाहिए:
निम्नलिखित एसक्यूएल उत्पन्न करता है। – Justin