2014-02-18 25 views
0

第一的遊戲對象使用Hibernatehibernate如何與懶讀取引用一起工作?

List<Game> games = (List<Game>) session.createQuery("from Game where status=2").list(); 

考慮到遊戲對象必須定位對象的引用形式的數據庫,我將獲取的列表。 Location對象有一個Id。

long id = games.get(0).getLocation().getId(); 

在這裏,我需要知道遊戲映射到的位置的ID。位置被定義爲一個懶惰的獲取。但是在數據庫中,遊戲的每一行都有location_id字段。

所以我的問題是,當我要求hibernate通過一個對象獲取Id,如圖所示,它是第一次獲取對象,然後是該ID?還是更聰明,直接從遊戲中獲取ID?

+0

打開SQL登錄,然後自己查看。 –

回答

0

它會產生2條語句。

首先選擇的遊戲,包括遊戲ID和locationid

其次選擇爲全位置行包括LocationId。

爲什麼?因爲在getLocation()運行時不會知道你只需要id

相關問題