标准构建器和规范jpa

问题描述

所以,我敢肯定这是一个基本错误,但是我无法推断出什么... 我有一个包含20多个字段的表格。我需要创建一些东西来从一个字段返回特定计数。

select查询基本上是这样的:

SELECT d.host AS Host,COUNT(d.host) AS Total FROM VM_N d JOIN VM_VM h WHERE h.datetime BETWEEN 
CAST(#date1# AS DATE) AND CAST(#date2# AS DATE) GROUP BY d.host ORDER BY Total DESC

我已经建立了一个过滤日期的规范,如下所示:

public static Specification<NSBaseQuery> withDaterange(Date dateInit,Date dateFim) {

    if (dateInit == null || dateFim == null) {
        return null;
    } else {//return a.compareto(d) * d.compareto(b) >= 0;
        return (Root<NSBaseQuery> root,CriteriaQuery<?> query,CriteriaBuilder cb) -> cb.between(root.get("date"),dateInit,dateFim);
    }

}

但是我正在努力创建选择项,对此我还很陌生...

这就是我所能提供的:

public static Specification<NSBaseQuery> getNSActives(Boolean active,Date dateInit,Date dateFim) {
    if (!active || active == null) {
        return null;
    } else {//root.get("host").alias("Host"),cb.count( root.get("host")).alias("Total")

        return (Root<NSBaseQuery> root,CriteriaBuilder cb) -> {
            
            query.multiselect(root.get("host").alias("Host"),cb.count( root.get("host")).alias("Total"))
                    .where(cb.between(root.get("date"),dateFim));
            //also here there's an error because of the return type that i can't resolve...
            
            
        };
    }

}

我该如何进行这项工作?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)