java - 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 正确返回空列表 []
所以我认为这是一些映射和/或数据库字段不匹配的问题?
请帮忙
解决方案
我发现@Id 的属性有误。看起来spring jpa将为每条记录返回带有空元素的列表,其中从查询返回的@Id注释的属性为空,即使您的where子句位于非键属性上
推荐阅读
- mysql - 如何在sql中插入带有SELECT值的新记录
- c# - 以 XmlDocument 作为返回类型的 Web 方法在 asp.net 核心的 SoapCore 中失败
- c# - DatagridView 按列折叠
- google-cloud-platform - 如何在 IPv6 (GKE) 上公开 TCP 服务
- ruby-on-rails - ActiveAdmin 在开发环境中非常慢
- excel - Excel 和 Excel-365 在 OLE 交互性方面是否存在显着差异?
- python - 如何在熊猫中使用 groupby 获得 datediff?
- node.js - Redis 节点监听 SET 事件并为每个请求设置一个 TTL
- reactjs - 如何通过get方法在每个输入字段中设置状态值
- azure - 将文件从远程桌面 (RDP) 复制到 Azure Blob 存储