首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Spring Jpa中使用本机查询时无法提取ResultSet

在Spring Jpa中使用本机查询时无法提取ResultSet
EN

Stack Overflow用户
提问于 2020-05-05 01:24:03
回答 1查看 2.1K关注 0票数 0

我试图通过使用Spring JPA原生查询的一些比较条件来判断true或false。但我得到了下面的例外,

代码语言:javascript
运行
复制
could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet

我尝试的查询是:

代码语言:javascript
运行
复制
SELECT case when ABS(am_savedagent.AGENT_VERSION)< 1.8 then 'true' else 'false' end as bool 
FROM am_savedagent where am_savedagent.BOX_ID="ots-JIO6Yn0jZbxs";

我的存储库

代码语言:javascript
运行
复制
public interface SavedAgentRepository extends JpaRepository<SavedAgentDetails, String>, JpaSpecificationExecutor<SavedAgentDetails> {
    @Query(value = "SELECT case when ABS(SavedAgentDetails.agentVersion)< ?1 then 'true' else 'false' end as bool FROM SavedAgentDetails where SavedAgentDetails.boxId=?2", nativeQuery = true)
    public Optional<List<Object>> findByAgentVersionAndBoxId(String currentVersion, String boxid);
}

我找不到你犯的错误。请帮帮我,来人啊。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-05 01:46:25

由于您使用的是native query =true,这就是为什么需要在查询中使用表名而不是实体名的原因。

试试这个-->

代码语言:javascript
运行
复制
public interface RegisterAgentRepository extends JpaRepository<RegisterAgentDetails, String>, JpaSpecificationExecutor<RegisterAgentDetails> {
    @Query(value = "SELECT case when ABS(am_registeragent.AGENT_VERSION)< ?1 then 'true' else 'false' end as bool FROM am_registeragent where am_registeragent.SAASBOX_ID=?2", nativeQuery = true)
    public Optional<List<Object>> findByAgentVersionAndSaasboxId(String currentVersion, String saasboxid);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61598030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档