Java Spring数据Jpa查询返回的对象具有空值
我正在尝试从JPA存储库获取自定义类型的对象 VisitRepository.java ClientRating.javaJava Spring数据Jpa查询返回的对象具有空值,java,spring,spring-data-jpa,Java,Spring,Spring Data Jpa,我正在尝试从JPA存储库获取自定义类型的对象 VisitRepository.java ClientRating.java public List findAllSorted(字符串startDate、字符串endDate、Long fieldNum){ List visitReport=visitpository.findByDate(startDate,endDate); log.debug(“visitReport:+visitReport.size()); 对于(iIntegerRepo
public List findAllSorted(字符串startDate、字符串endDate、Long fieldNum){
List visitReport=visitpository.findByDate(startDate,endDate);
log.debug(“visitReport:+visitReport.size());
对于(iIntegerReport)数据访问:visitReport
) {
log.debug(“值:+visit.getValue());
}
在调试中,我得到visitReport.size()=27(这是正确的记录计数),但是visit.getValue()对于每一行都为NULL,尽管此字段中对于每一行都没有NULL值。
怎么了?您可以使用NativeQuery注释: 看看:
从本机查询返回自定义对象时,结果列名必须与自定义接口的名称匹配,否则它们将只有
null
值。例如:
@Repository
public interface MyRepository extends JpaRepository<MyEntity, Long> {
@Query(value = "SELECT "\"id\" FROM \"my_entity\"", nativeQuery = true)
List<IdNative> findAllIdNative();
interface IdNative {
Long getEntityId();
}
}
或者,更改接口方法以匹配列名:
Long getId();
可能有用:谢谢,Strelok!这很有用。我将查询改为:@query(value=“选择客户端id作为clientId,count(*)作为visitCount from visit where(DATE(jhi\u DATE)介于:startDate和:endDate)group by client\u id之间,nativeQuery=true)。这很有效。也就是说,问题在于字段的命名。再次感谢!
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());
}
@Repository
public interface MyRepository extends JpaRepository<MyEntity, Long> {
@Query(value = "SELECT "\"id\" FROM \"my_entity\"", nativeQuery = true)
List<IdNative> findAllIdNative();
interface IdNative {
Long getEntityId();
}
}
SELECT "id" AS "entityId" FROM "my_entity"
Long getId();