首先,我将使用hibernate
从数据库中获取一个Game对象列表List<Game> games = (List<Game>) session.createQuery("from Game where status=2").list();
考虑Game Object具有对Location对象的引用。并且Location对象具有Id。
long id = games.get(0).getLocation().getId();
在这里,我需要知道游戏映射到的位置的ID。并且Location被定义为懒惰提取。但是在数据库中,游戏的每一行都有location_id字段。
所以我的问题是当我请求hibernate通过一个如图所示的对象获取Id时,它首先获取对象然后是Id吗?还是更聪明,直接从游戏中获取Id?
答案 0 :(得分:0)
它将产生2个陈述。
首先选择游戏,包括Gameid和locationid
Second for the whole location-row包括LocationId。
为什么呢?因为在getLocation()
之后,运行时不会知道您只需要id
。