could not initialize proxy - no Session

今天在用hibernate获取实体类的关联实例时,遇到了这个异常。我是先获得user类,然后获得user关联的admin类(多个user对应一个admin)。

原因是因为hibernate默认关联类的实例是延迟加载的。我只是用Admin admin = user.getAdmin();然后没有对admin对象使用任何方法,只是放入httpsession中。然后在jsp中获取,这样使得admin实例没有真正加载,当我们真正使用admin对象时,hibernate的session已经关闭了。

解决办法:在 user.hbm.xml中设置<manytonone>属性lazi="false"

<many-to-one name="admin" class="org.model.Admin" fetch="select" lazy="false">

    <column name="official" not-null="true" />

</many-to-one>

你可能感兴趣的:(could not initialize proxy - no Session)