我不確定為什么會收到此錯誤。我試圖從這個查詢中的兩個單獨的表中獲取資料。
@Query("SELECT * FROM ConnectionRequest c "
"INNER JOIN (SELECT firstName as name FROM USER u WHERE c.userId = u.id) "
"WHERE c.dateTimeCompleted IS NULL", nativeQuery = true)
List<ConnectionRequest> findAllByDateTimeCompletedIsNull();
uj5u.com熱心網友回復:
如果您只為名為 的引數提供單個值value,則可以簡單地將值本身放在括號內。但是,如果您提供多個引數,即使一個引數用于名為的引數,value您也必須指定value = "text".
順便說一句,您應該盡量避免nativeQuery,因為它會繞過 JPQL 可以為您提供的檢查和優化。在這種情況下,您可以讓 Spring Data 根據方法名稱(如findAllByUserFirstNameAndDateTimeCompletedIsNull())為您撰寫整個查詢。
uj5u.com熱心網友回復:
您不能在內部聯接中使用條件子選擇
所以喜歡
SELECT c.*,u.firstName as name FROM ConnectionRequest c
INNER JOIN USER u ON c.userId = u.id
WHERE c.dateTimeCompleted IS NULL
或作為子選擇
SELECT *,(SELECT firstName FROM USER u WHERE c.userId = u.id) as name FROM ConnectionRequest c
WHERE c.dateTimeCompleted IS NULL
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/534294.html
標籤:爪哇数据库弹簧靴冬眠
上一篇:在Hibernate集合中使用HashMap<Entity,Enum>-ElementCollection
下一篇:PHP-防止重疊保留
