首页 > 解决方案 > 在 @Query 中,我需要查询 DB 以选择一列为空的行。我正在使用 JpaRepository

问题描述

我尝试使用以下查询

@Query(value = "select E.SRC,E.TRGT,E.EVNT_STTS,E.ADDL_ATTR from EVNT.EVNT_LOG E where E.EVNT_ID=:eventId and E.ADDL_ATTR IS NULL" , nativeQuery = true)
List<AggregationLog> findByEventIdAndTargetAndAdditionalAttributeWithNULL(@Param("eventId") Long eventId);

在上面的查询中,我得到了无效的列名。

请指导我选择 eventID 和 addl_attr 为空的行。

标签: javasqloraclespring-data-jpa

解决方案


好吧...无效的列意味着oracle无法解析查询中的列名。这通常意味着两件事中的一件:

  1. 一个错字
  2. 创建的列区分大小写。创建表格的人用双引号将列名括起来,并将列名放在除全部大写之外的其他地方。在 sqlplus、sqldeveloper 或任何其他客户端中执行“DESCRIBE <table_name>”并检查列名是否全部为大写。如果不是,您需要在查询中用双引号将它们括起来,并且名称与您看到的完全匹配。

推荐阅读