2
我想創建一個命名查詢,它基於一個id連接兩個表。我得到一個HibernateException,說:「命名查詢中的錯誤:Users.getAllUsers休眠命名查詢加入問題
Users bean有一個私有的設置圖像變量。UserImages bean被映射到一個包含所有用戶的圖像的表。這是我的命名查詢。
@NamedQueries ({
@NamedQuery(name = "Users.getUserImage",
query("from Users as users INNER JOIN fetch users.image as image WHERE users.userId = image.userId" AND users.userId =: passedId)
})
我通過可變一個作爲命名查詢的passedId說法。
我非常新冬眠,但我被告知要使用這個取指令,因爲我有一組內包含一堆UserImage bean對象的User bean。任何人都可以看到爲什麼這不起作用?我基於的實際SQL查詢他的關閉在我的sql編輯器中工作是
SELECT * FROM users as u WHERE INNER JOIN user_images as images ON users.userId = images.userId AND users.userId = 1;
爲什麼你在圖像中有一個userId?看起來你的實體模型中有外鍵。當它返回用戶時,爲什麼叫你查詢getUserImage?它聞起來像關於休眠的根本誤解。 – 2012-10-03 10:47:56
除此之外,冒號應該是不帶空格的passedId'=:passedId'的前綴。 userId後面有一個雙引號。 – djmj 2012-11-02 23:59:17