[英]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.