2013-05-04 5 views
5

यह कोड मुझे दो आइटम डेटाटाइम और गिनती की एक सूची देता है। लेकिन मुझे बिना समय के समूह को समूह की जरूरत है।बिना किसी समय के हाइबरनेट मानदंड समूह

क्या कोई मुझे एक सुराग दे सकता है कि यह कैसे करें? धन्यवाद!

Criteria criteria = getSession().createCriteria(Parcel.class); 

    ProjectionList projectionList = Projections.projectionList(); 

     projectionList.add(Projections.groupProperty("dateCreated")); 
     projectionList.add(Projections.rowCount()); 

    criteria.setProjection(projectionList); 


    List<Object[]> results = criteria.list(); 

परिणाम:

2013-04-27 11: 08: 00.0 | 32

2013-04-27 11: 10: 00.0 | 5

2013-04-28 15: 03: 27.0 | 12

मुझे चाहिए:

2013-04-27 | 37

2013-04-28 | 12

उत्तर

12

आपको Projections#sqlGroupProjection विधि उपयोगी हो सकती है। यह आपको एक SQL फ़ंक्शन date() को नियोजित करने की अनुमति देता है जो Date निष्कर्ष निकालता है DateTime कॉलम। मूल रूप से, बजाय बुला

projectionList.add(Projections.groupProperty("dateCreated")); 

उपयोग की

projectionList.add(Projections.sqlGroupProjection("date(dateCreated) as createdDate", "createdDate", new String[] { "createdDate" }, new Type[] { StandardBasicTypes.DATE })); 
+0

अच्छा काम करता है, लेकिन मैं स्तंभ नाम ('date_created' में साथ इकाई क्षेत्र (' अपने उदाहरण में dateCreated') के नाम को बदलने के लिए किया था आपका उदाहरण)। अगर मैं ऐसा नहीं करता, तो यह शिकायत करता है कि कम * * (?) में कॉलम * (आपके उदाहरण में दिनांकित ') मौजूद नहीं है। –

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