是不是延迟加载特别棒,没有什么缺点?
也不是。我们平时常说一句话,一个人有多大的优点,他可能就有多大的缺点。人无完人啊!
对于延迟加载也是这样。他虽然给我们提高了系统的性能,但是他也会给我们带来一定的副作用。
什么副作用呢?就是在我们开发的时候,你使用了延迟加载,有可能发生这种类型的伪例:LazyInitializationException
而且是在开发struts+spring+hibernate的web项目的时候:
解决方案:
1、取消延迟加载。你只要在项目中不使用延迟加载,这种伪例就不会发生。这个对于我们开发来说是得不偿失的,
我们不能因噎废食啊,对吧,就是因为他会发生这种伪例,我们就不用这种给我们对提升系统性能
有很好作用的手段。这种方案一般情况下我们都会忽略掉,还是要启用延迟加载。】
2、使用Hibernate.initialize()方法。我只要调用这个方法的时候,就会强制加载,这个方法会解决一定的问题,但是有时会
失效。
3、使用Open Session In View设计模式。