2016-03-31 23 views
0

Belirli bir tarih ve ayın verisini, oluşturulan tarihten itibaren alma yöntemim.Hazırda bekleme ölçütleri Kısıtlamalar: - Geçerli ve son bir ayın verilerini nasıl alırsınız?

@Override 
    public List getMonthlyOrdersSummary(LabOrderConditions labOrderConditions) { 
     Criteria criteria = getCurrentSession().createCriteria(LabOrder.class); 

     criteria.add(Restrictions.gt("orderNo", 0)); 
     if (StringUtils.isNotBlank(labOrderConditions.getClientCode())) 
      criteria.add(Restrictions.eq("clientCode", labOrderConditions.getClientCode())); 

     if (labOrderConditions.getAccountCodesList() != null) { 
      criteria.add(Restrictions.in("practice.code", labOrderConditions.getAccountCodesList())); 
     } 


     if (StringUtils.isNotBlank(labOrderConditions.getClientsCodes())) { 
      if (labOrderConditions.getCallingPlace().equalsIgnoreCase("allClients")) { 
       List<String> items = Arrays.asList(labOrderConditions.getClientsCodes().split("\\s*,\\s*")); 
       criteria.add(Restrictions.in("clientCode", items)); 
      } 
     } 

     criteria.add(Restrictions.sqlRestriction("YEAR(createdDate)=" + labOrderConditions.getYear())); 
     ProjectionList projectionList = Projections.projectionList(); 

     if (labOrderConditions.getCallingPlace().equalsIgnoreCase("allClients")) { 
      projectionList.add(Projections.groupProperty("clientCode"), "clientCode"); 
     } 

     projectionList.add(Projections.sqlGroupProjection("MONTHNAME(createdDate) as orderMonthName", "MONTHNAME(createdDate)", 
       new String[] { "orderMonthName" }, new Type[] { StandardBasicTypes.STRING })); 
     projectionList.add(Projections.sqlGroupProjection("Month(createdDate) as orderMonthNo", "Month(createdDate)", new String[] { "orderMonthNo" }, 
       new Type[] { StandardBasicTypes.INTEGER })); 

     projectionList.add(Projections.rowCount()); 
     criteria.setProjection(projectionList); 
     criteria.addOrder(org.hibernate.criterion.Order.asc("createdDate")); 
     return criteria.list(); 
    } 

Geçerli ve geçen ay için kısıtlama nasıl yazılır.

Sadece criteria.add(Restrictions.in("MONTHNAME(createdDate)", labOrderConditions.getCompareMonthList()));

gibi bir şey kimse benimle herhangi bir öneri payı Lütfen eğer istiyorum.

Teşekkür Sitansu sizin labOrderConditions.getCompareMonthList (Dan

cevap

1

), o zaman, Java gelen başlangıç ​​ve bitiş tarihi nesneleri oluşturmak: Birkaç aralıkları varsa

criteria.add(Restrictions.between("createdDate", startDate, endDate)); 

, ayrıca ekleyebilirsiniz " veya "kısıtlamalar.

o sorunu çözmek misiniz, yoksa başka bir sonuç bekliyorsunuz? i geçerli ay (Mart) ve geçen ay (Şubat) gibi verileri tüm verileri istiyorum

+0

teşekkürler veritabanı nedir aya – Sitansu

+0

üzerine tabanını getirme? Örneğin, PostgreSQL'de "GROUP BY date_trunc ('month', createdDate)" komutunu kullanabilirsiniz, böylece Hazırda Bekletme yanıtı veritabanınıza da bağlı olabilir. –

+0

Mysql veritabanı kullanıyoruz – Sitansu