2014-02-18 29 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

相关问题