首页 > 解决方案 > JPA 自定义查询返回空值列表

问题描述

我有以下 JPA 查询

@Query("SELECT a, b, c, d FROM table WHERE a in (:ids)", native = true)
List<Row> getRowByIDs(@Param("ids") List<String> ids);

行类具有来自查询的相同映射字段 a、b、c、d

当数据库中的查询没有匹配的行时,它奇怪地返回一个非空列表,但有一个或多个空项目

当我打印从 java 返回的结果时,我得到了这个

[null, null]

我有另一个类似的 api 正确返回空列表 []

所以我认为这是一些映射和/或数据库字段不匹配的问题?

请帮忙

标签: javaspringdatabasejpa

解决方案


我发现@Id 的属性有误。看起来spring jpa将为每条记录返回带有空元素的列表,其中从查询返回的@Id注释的属性为空,即使您的where子句位于非键属性上


推荐阅读