2016-04-02 26 views
0

Benim İngilizcem için üzgünüm.Spring Data JPA Teknik özellik grubuBy

jpa'yı groupby'ye kullanmak istiyorum, örneğin: scrip, dstip ile veri akış grubundan scripti, dustup, (*) sayısını seçin. SQL günlük olduğunu

public class DataflowSpec { 
    public static Specification<Dataflow> search(final String[] group, final String[] sort, final String[] desc) { 
     return new Specification<Dataflow>() { 
      @Override 
      public Predicate toPredicate(Root<Dataflow> root1, CriteriaQuery<?> query1, CriteriaBuilder builder) { 
       // TODO Auto-generated method stub 

       CriteriaQuery<Tuple> query = builder.createQuery(Tuple.class); 

       Root<Dataflow> root = query.from(Dataflow.class); 


       query.multiselect(root.get("srcip"), root.get("dstip"), builder.count(root)); 

       query.groupBy(root.get("srcip"), root.get("dstip")); 

       query.orderBy(builder.desc(root.get("srcip").as(BigInteger.class))); 
       return query.getRestriction(); 
      } 
     }; 
    } 
} 

ama: kipi:

select 
    count(dataflow0_.id) as col_0_0_ 
from 
    Dataflow dataflow0_ 

kipi:

select 
    dataflow0_.id as id1_2_, 
    dataflow0_.byteall as byteall2_2_, 
    dataflow0_.bytedn as bytedn3_2_, 
    dataflow0_.byteup as byteup4_2_, 
    dataflow0_.dstip as dstip5_2_, 
    dataflow0_.dstport as dstport6_2_, 
    dataflow0_.engieid as engieid7_2_, 
    dataflow0_.flag as flag8_2_, 
    dataflow0_.netid as netid9_2_, 
    dataflow0_.pkgall as pkgall10_2_, 
    dataflow0_.pkgdn as pkgdn11_2_, 
    dataflow0_.pkgup as pkgup12_2_, 
    dataflow0_.protocolid as protoco17_2_, 
    dataflow0_.rtt as rtt13_2_, 
    dataflow0_.srcip as srcip14_2_, 
    dataflow0_.srcport as srcport15_2_, 
    dataflow0_.updatetime as updatet16_2_ 
from 
    Dataflow dataflow0_ limit ? 

yüzden, nasıl çözüleceğini yüzden, bu kod yazmak? Teşekkürler!

+0

JPQL ile denediniz mi? – 11thdimension

+0

bu yüzden WHERE yan tümcesi (bir yere) için Predicate ... ve SELECT yan tümcesi bölümüne ne dönersiniz? –

+0

Hayır, sadece belirtim kullanmak istiyorum. –

cevap

0

Belirtim groupBy'yi desteklemiyor. SimpleJpaRepository query.select/multiselect query.select ile değiştirildi (kök)

İlgili konular