簡體   English   中英

Spring Data JPA @Query注釋,nativeQuery = true,

[英]Spring Data JPA @Query annotation, nativeQuery = true,

我的@Repository有問題:

@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);
}

當我運行它時,結果是:

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我的@Query

您的查詢以單行格式(由於erm,space的原因將多個空格縮小到一個空格)等同於

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子句之前缺少一個空格。

SELECT z.* FROM更改為SELECT z FROM假設RekvalZamestn類映射到表rekv_z

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM