簡體   English   中英

休眠如何與延遲獲取引用一起工作?

[英]How hibernate works with lazy fetching references?

首先,我將使用休眠模式獲取游戲對象列表數據庫的列表

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

考慮游戲對象具有對位置對象的引用。 位置對象有一個ID。

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

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

所以我的問題是,當我請求休眠狀態通過一個對象獲取ID時,如圖所示,它是先獲取對象,然后獲取該對象的ID嗎? 還是更智能並直接從游戲中獲取ID?

它將產生2條語句。

首先選擇游戲,包括Gameid和locationid

其次,選擇整個位置行(包括LocationId)。

為什么? 因為在getLocation() ,運行時將不知道您只需要id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM