从Spring Data Jpa查询返回的对象具有空值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Spring Data Jpa查询返回的对象具有空值相关的知识,希望对你有一定的参考价值。

我正试图从JPA Repository获取自定义类型的对象

visit repository.Java

@Repository
public interface VisitRepository extends JpaRepository<Visit, Long>, JpaSpecificationExecutor<Visit> {
    @Query(value = "select client_id , count(*) from visit  where (DATE(jhi_date) between :startDate and :endDate) group by client_id",nativeQuery = true)
    List<IIntegerReportData> findByDate(@Param("startDate") String startDate, @Param("endDate") String endDate);

I integer report data.Java

package com.mycompany.hiptest.repository;

public interface IIntegerReportData {
    Long getId();
    Integer getValue();
}

client rating.Java

 public List<ClientsRatingDTO> findAllSorted(String startDate, String endDate, Long fieldNum) {
        List<IIntegerReportData> visitReport = visitRepository.findByDate(startDate, endDate);   
        log.debug("visitReport:" + visitReport.size());

        for (IIntegerReportData visit : visitReport
        ) {
            log.debug("value: " + visit.getValue());
          }

在调试中我得到visitReport.size()= 27(这是正确的记录计数),但是 每个行的visit.getValue()为NULL,但每个行的此字段中没有空值。怎么了?

答案

您可以使用NativeQuery Annotation:

看一下:

https://www.baeldung.com/spring-data-jpa-query

以上是关于从Spring Data Jpa查询返回的对象具有空值的主要内容,如果未能解决你的问题,请参考以下文章

Spring Data JPA:查询如何返回非实体对象或对象列表?

Spring Data JPA:保存嵌套的 OneToMany 子级(具有级联)返回 NULL 父级外部对象

spring data jpa 能不能只返回一个字段的值,而不是整个对象

Spring Data JPA 参考文档二

Spring Data JPA 通过查询从实体获取投影

如何使用 Spring Data JPA Repository 从 2 个表中查询?