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!
JPQL ile denediniz mi? – 11thdimension
bu yüzden WHERE yan tümcesi (bir yere) için Predicate ... ve SELECT yan tümcesi bölümüne ne dönersiniz? –
Hayır, sadece belirtim kullanmak istiyorum. –