微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

标准构建器和规范jpa

如何解决标准构建器和规范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 举报,一经查实,本站将立刻删除。