Java 如何使用标准查询选择POJO

Java 如何使用标准查询选择POJO,java,spring-data-jpa,Java,Spring Data Jpa,我犯了这个错误 java.lang.NullPointerException:在 org.hibernate.query.criteria.internal.path.AbstractPathImpl.get (AbstractPathImpl.java:123)~[hibernate-core-5.2.17.Final.jar: 5.2.17.最终版本]com.bolsadeideas.springboot.backend.apirest.models.services.facturaserv

我犯了这个错误

java.lang.NullPointerException:在 org.hibernate.query.criteria.internal.path.AbstractPathImpl.get (AbstractPathImpl.java:123)~[hibernate-core-5.2.17.Final.jar: 5.2.17.最终版本]com.bolsadeideas.springboot.backend.apirest.models.services.facturaserviceinpl.porDia (InvoiceServiceImpl.java:231)~[cstrong textlasses/:na]

每次调用此查询时

我的咨询方法

public List<FacturaDTOdia> porDia(LocalDate mesReferencia) {

        CriteriaBuilder criteriaBuilder = manager.getCriteriaBuilder();

        CriteriaQuery<FacturaDTOdia> criteriaQuery = criteriaBuilder.createQuery(FacturaDTOdia.class);

        Root<Factura> root = criteriaQuery.from(Factura.class);

        criteriaQuery.select(criteriaBuilder.construct(FacturaDTOdia.class, root.get(Factura_.status),
                root.get(Factura_.dataCriacao), criteriaBuilder.sum(root.get(Factura_.valorTotal))));
            
        
        LocalDate primeiroDia = mesReferencia.withDayOfMonth(1);
        LocalDate ultimoDia = mesReferencia.withDayOfMonth(mesReferencia.lengthOfMonth());

        criteriaQuery.where(criteriaBuilder.greaterThanOrEqualTo(root.get(Factura_.dataCriacao), primeiroDia),
                criteriaBuilder.lessThanOrEqualTo(root.get(Factura_.dataCriacao), ultimoDia));

        criteriaQuery.groupBy(root.get(Factura_.status), root.get(Factura_.dataCriacao));

        TypedQuery<FacturaDTOdia> typedQuery = manager.createQuery(criteriaQuery);
        return typedQuery.getResultList();

    }
public List porDia(LocalDate mesreferencea){
CriteriaBuilder CriteriaBuilder=manager.getCriteriaBuilder();
CriteriaQuery-CriteriaQuery=criteriaBuilder.createQuery(FacturaDTOdia.class);
Root=criteriaQuery.from(Factura.class);
criteriaQuery.select(criteriaBuilder.construct(FacturaDTOdia.class,root.get(Factura\uu.status)),
root.get(Factura_.datacriaco)、criteriaBuilder.sum(root.get(Factura_.valorTotal));
LocalDate primeiroDia=mesreferencea.withDayOfMonth(1);
LocalDate ultimoDia=mesreferencea.withDayOfMonth(mesreferencea.lengthOfMonth());
criteriaQuery.where(criteriaBuilder.greaterThanOrEqualTo(root.get(Factura\uu.dataCriacao),primeiroDia),
criteriaBuilder.lessThanOrEqualTo(root.get(Factura_u.datacriaco),ultimoDia));
groupBy(root.get(Factura_.status)、root.get(Factura_.datacriaco));
TypedQuery TypedQuery=manager.createQuery(criteriaQuery);
返回typedQuery.getResultList();
}

这是否回答了您的问题?