在hibernate中 需要全部进行初始化?如果lazy=true的话

Human和Role是多对多的关系。当我find所有的Human的时候,得到的是一个List,如果lazy是true的话,我是否要对这个List中所有的Human.getRoles()进行初始化?
问题还有,Human.getRoles()中每一个Role中有一个getHumans(),是不是也要初始化啊,如果是的,那么好像陷入了一个漩涡了。。。
如果是lazy=false当然都没有什么问题,但是我做了简单的测试发现速度太慢了。

>如果lazy是true的话,我是否要对这个List中所有的Human.getRoles()进行初始化?<
当你调用human.getRoles()就自动初始化了。

>如果是lazy=false当然都没有什么问题,但是我做了简单的测试发现速度太慢了<
不太明白你的意思。
lazy=false和lazy=true只是初始化的时机不同而已,不影响初始化的方法。

如果lazy=true的话,你使用human.getRoles()的话,一定要在session.close()之前Hibernate.initialize(human.getRoles());不然会出现异常的。如果是false的话,则不需要。

那只需要保证做完所有处理之后再session.close(),
比如在web应用中用filter来close session。