1. 程式人生 > >hibernate使用hql根據外來鍵查詢

hibernate使用hql根據外來鍵查詢

記住重要的一點是:hql不操作資料庫,他操作的是類物件。

這裡有兩張表

User(id,name)   對應User類(int id,String name)

Score(id,math,user_id),user_id為外來鍵,對應User表中的id    對應Score類(int id,int math,User user_id)

注意:user_id,他是一個物件,是一個User類的物件

現在要根據user_id來查詢Score中的資料。

hql語句是:from Score s left outer join s.user_id where s.user_id.id=?

其中,紅色部分指的是在Score類中表示User類的屬性名稱,他是一個類物件

藍色部分,前面的s.user_id是一個User類的物件,User類物件.id就能拿到User類中的id值。

補充:以上情況適用於懶載入。若配置了lazy=false,即不進行懶載入,那麼可以直接使用from Score s  where s.user_id.id=?