我需要使用 Specifications 使用聚合函数进行 JPQL 查询。我想要类似的东西
myQuery="select sum(et.durationMinutes/et.percent) from EmployeeTimekeeping et"
myQuery.where(specifications)
myQuery.getResultList();
我正在尝试使用 Specifications 对象而不是我的 where 子句。有没有办法做这样的事情?
谢谢!
我需要使用 Specifications 使用聚合函数进行 JPQL 查询。我想要类似的东西
myQuery="select sum(et.durationMinutes/et.percent) from EmployeeTimekeeping et"
myQuery.where(specifications)
myQuery.getResultList();
我正在尝试使用 Specifications 对象而不是我的 where 子句。有没有办法做这样的事情?
谢谢!
要编写这样的查询,您可以使用Expression类。例如,像这样求和,你可以写:
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Number> q = cb.createQuery(Number.class);
Root<EmployeeTimekeeping > t = q.from(EmployeeTimekeeping .class);
Expression<Double> sum = cb.sum(t.<Double>get("durationMinutes"), t.<Double>get("percent"));
q.select(sum.alias("sum"));
要像这样构建查询,您可以根据需要添加规范。
像你这样的问题已经被问过,从我读过的内容来看,构建动态 where 子句的最简单解决方案是使用 CriteriaAPI。