理解没有错你的问题应该时 close session 问题。
lazy 设置为true 时在 web.xml 中加上这样的设置。但代码也要做相应的修改, 避免空指针问题。<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate.support.OpenSessionInViewFilter
</filter-class>
</filter>
lazy 设置为true 时在 web.xml 中加上这样的设置。但代码也要做相应的修改, 避免空指针问题。<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate.support.OpenSessionInViewFilter
</filter-class>
</filter>
现有问题请教:
Lazy 设置对持久化类有什么影响,如果该类没有关系映射设置为什么会导致这个问题呢
Thank you very much!
Session session ;
Transaction tx = session.beginTraction();
session.get(Event.class,1); //加载 id 为 1 的对象
tx.commit();
session.close();由于event对象里面有set Speaker属性,
所以你 lazy="false" 就表示加载event对象的时候把speakers也加载了。
lazy="true" 表示加载event对象的时候并不加载speakers集合,当你在需要用到这个speakers集合的时候再
加载。但是如果你用到这个集合的地方是在session关闭以后,那么它就会出问题,因为加载都是基于session的。
而此时你的session已经关闭了。如果你在上面程序session.close()之前取speakers对象是不会有问题的。