首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring @Query注释,nativeQuery = true,

Spring @Query注释,nativeQuery = true,
EN

Stack Overflow用户
提问于 2016-04-05 17:33:11
回答 2查看 4.7K关注 0票数 1

我的@Repository有问题

代码语言:javascript
复制
@Repository
public interface RekvZmRepository extends CrudRepository<RekvalZamestn, RekvalZamestnPk> {
@Query(value = "SELECT z.* FROM rek_zm d INNER JOIN proj_a a ON d.id = a.prj_idcislo"
  + "                                   INNER JOIN proj_e e ON a.id = e.id"
  + "                                   INNER JOIN rekv_z z ON d.id = z.id"
  + "WHERE  d.id = ?1 AND a.id = ?2 AND e.id = ?3", nativeQuery = true)
public List<RekvalZamestn> getRekvOsOnDoh(Long dhzmrk, Long prj, Long prje);
}

当我运行它时,结果是:

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

当我运行SQL时,它可以工作,所以对我来说,问题不在于SQL,而在于我的@Query

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-05 17:44:44

您的查询以一行格式(由于,呃,空格的原因将多个空格压缩为一个空格)等于

代码语言:javascript
复制
SELECT z.* FROM rek_zm d INNER JOIN proj_a a ON d.id = a.prj_idcislo INNER JOIN proj_e e ON a.id = e.id INNER JOIN rekv_z z ON d.id = z.idWHERE  d.id = ?1 AND a.id = ?2 AND e.id = ?3

如果像这样将所有字符串串联在一行中,那么很明显,在WHERE子句之前缺少了一个空格。

票数 3
EN

Stack Overflow用户

发布于 2016-04-05 17:36:17

假设SELECT z.* FROM类映射为表rekv_z,则将RekvalZamestn更改为rekv_z

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36433246

复制
相关文章

相似问题

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