[英]Spring Data JPA [Unknown column '...' in 'where clause']
我正在研究 Spring 項目和 MySQL 數據庫系統。
我有一個包含此列“list_id”的表,並且我在 Java 類中有此列的此變量。 但是,正如您所看到的,這兩個名稱是不同的:
@Column(name = "list_id")
private int listId;
我正在做這個查詢:
@Query(value="select * from words_list WHERE list_id=listId", nativeQuery=true)
List<WordList> neverTested(@RequestParam("listId") int listId);
我嘗試將它們放入控制器類
public List<WordList> neverTested(@RequestParam int listId){
return wordListRepository.neverTested(listId);
}
我總是收到這個錯誤:
java.sql.SQLSyntaxErrorException: Unknown column 'listId' in 'where clause'
即使我確定我的方式,但聽起來名字的問題
在 listId 之前添加一個“:”,如下所示:
@Query(value="select * from words_list WHERE list_id = :listId", nativeQuery=true)
List<WordList> neverTested(@RequestParam("listId") int listId);
你必須像這樣在參數前寫一個冒號
@Query(value="select * from words_list WHERE list_id=:listId", nativeQuery=true)
使用org.springframework.data.repository.query.@Param將方法參數傳遞給查詢,而不是org.springframework.web.bind.annotation.@RequestParam 。
@Query 查詢字符串示例:
"select * from words_list WHERE list_id=:listId"
命名參數在查詢字符串中由冒號后跟參數名稱指示。
結合@Query 和@Param 注釋的示例:
@Query(value="select * from words_list WHERE list_id=:listId", nativeQuery=true)
List<WordList> neverTested(@Param("listId") int listId);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.