再做一個關係有點複雜的join ,
雖然說hibernate本質不是很適合 , 不過總是想挑戰一下 .
這篇文章我實在是猶豫了一下要發在db還是這裡 ,
不過想想還是這裡比較適合 =.=a
前情題要如下 這是join的關係 .
Word -> Cate
↑
UserWord
↓
User
目標是從UserWord 找出特定user所擁有的 Cate .
(都有在hbm設定join關係 , 先假設對應的成員變數都是類別開頭小寫,
以及table名跟類別名一樣.)
我想查詢某特定使用者 (ex sid=1) 所發表文章的所有Cate.
這樣下是撈的到的
return session.createQuery("select uw.word.cate from UserWord
uw where uw.user.sid=:usersid ").setParameter("usersid", userSid);
不過我最近在練習 Criteria用法 , 所以我試著換種寫法寫 ,
return session.createCriteria(UserWord.class).add(
Restrictions.eq("user.sid", userSid)).setProjection(
Projections.projectionList().add(
Property.forName("word.cate")
)
);
這樣會出現 word.cate 找不到的訊息...orz
org.hibernate.QueryException: could not resolve property: word.cate
雖然說hql是有解決 ,不過還是想知道問題點在哪 ,
不曉得有沒有前輩知道我誤用的差異點在哪@@
文件下午翻了好幾次也沒注意到有寫到這麼複雜的狀況@@
http://www.hibernate.org/hib_docs/reference/en/html/querycriteria.html
有人知道的話請讓我知道問題差在哪 困惑中...@@
--
What do you want to have ? / What do you have?
從書本中,你可以發現我的各種興趣。
從CD中,你可以瞭解我所喜歡的偶像明星。
或許從文字你很難以瞭解一個人,但從物品可以。
My PPolis , My past. http://ppolis.tw/user/Tony
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.128.219.202
※ 編輯: TonyQ 來自: 220.132.59.247 (08/10 21:21)