使用条件查询

时间:2019-07-15 20:20:42

标签: java hibernate criteria-api

我有这张桌子飞机:

+ --------- + ------------- + ------ + ----- + --------- + ------- +

|领域类型空|关键默认值|额外|

+ --------- + ------------- + ------ + ----- + --------- + ------- +

| id | int(11)|否| | NULL | |

|类型int(11)|是的| NULL | |

| companyNam | varchar(50)|是的| NULL | |

| pilotName | varchar(50)|是的| NULL | |

| lastFlight |日期|是的| NULL | |

|价格| int(11)|是的| NULL | |

+ --------- + ------------- + ------ + ----- + --------- + ------- +

我想用领航员名称,lastFlight和公司名称的组合来进行计数。

基本上此查询

  select count(distinct CONCAT(companyNam,pilotName ,lastFlight)) from Planes

我尝试使用Criteria Quert来实现,但是将日期字段连接并转换为String会遇到一些问题

CriteriaBuilder cb = ..;

CriteriaQuery<Long> criteriaQuery= cb.createQuery(Long.class);

Root<Planes> from= criteriaQuery.from(Planes.class);

criteriaQuery.select(cb.countDistinct( /*from.get(Planes_.companyNam), from.get(Planes.pilotName) , from.get(Planes_.lastFlight)*/  ));

   TypedQuery<Long> query = getEntityManager().createQuery(criteriaQuery);
Long result = query.getSingleResult();

0 个答案:

没有答案