小编jun*_*iaz的帖子

为什么 hibernate 最后添加到我的查询交叉连接中

我正在通过这个基于 Hibernate 的代码构建和运行一个查询:

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Tuple> criteria = cb.createTupleQuery();
Root<hisaVO> hisa = criteria.from(hisaVO.class);
Root<EstablecVO> establec = criteria.from(EstablecVO.class);
Root<DisaVO> disa = criteria.from(DisaVO.class);
Root<RedVO> red1 = criteria.from(RedVO.class);
Root<MicroredVO> microred = criteria.from(MicroredVO.class);
Root<Unidad_EjecutoraVO> ue1 = criteria.from(Unidad_EjecutoraVO.class);
Join<hisaVO,EstablecVO> j1 = hisa.join("estab");
Join<EstablecVO,DisaVO> j2 = j1.join("disa") ;
Join<EstablecVO,RedVO> j3 = j1.join("red") ;
Join<EstablecVO,MicroredVO> j4 = j1.join("microred") ;
Join<EstablecVO,Unidad_EjecutoraVO> j5 = j1.join("ue") ;

criteria.multiselect(j3.get("red_nombre"), cb.count(hisa))
  .groupBy(red1.get("red_nombre"));

return em.createQuery(criteria).getResultList();  
Run Code Online (Sandbox Code Playgroud)

日志显示 Hibernate 正在通过以下相应的 SQL 实现它:

select
  redvo3_.red_nombre as col_0_0_,
  count(hisavo0_.id) as col_1_0_
from
  hisa hisavo0_
  inner …
Run Code Online (Sandbox Code Playgroud)

java mysql sql-server hibernate join

2
推荐指数
1
解决办法
2576
查看次数

标签 统计

hibernate ×1

java ×1

join ×1

mysql ×1

sql-server ×1