Java hibernate如何处理惰性获取引用?
首先,我将使用hibernate从数据库中获取游戏对象列表Java hibernate如何处理惰性获取引用?,java,hibernate,Java,Hibernate,首先,我将使用hibernate从数据库中获取游戏对象列表 List<Game> games = (List<Game>) session.createQuery("from Game where status=2").list(); 这里我需要知道游戏映射到的位置的Id。位置被定义为延迟获取。但在数据库中,游戏的每一行都有location\u id字段 所以我的问题是,当我请求hibernate通过一个对象获取Id时,如图所示,它是先获取对象然后再获取该对象的Id吗?
List<Game> games = (List<Game>) session.createQuery("from Game where status=2").list();
这里我需要知道游戏映射到的位置的Id。位置被定义为延迟获取。但在数据库中,游戏的每一行都有location\u id字段
所以我的问题是,当我请求hibernate通过一个对象获取Id时,如图所示,它是先获取对象然后再获取该对象的Id吗?还是更智能,直接从游戏中获取Id?它将生成2条语句 首先,选择游戏,包括Gameid和locationid 第二步,选择整个位置行,包括LocationId
为什么??因为在
getLocation()
之后,运行时将不知道您只需要id
打开SQL日志,然后自己查看。
long id = games.get(0).getLocation().getId();