使用clone解决hibernate+spring集成中的延迟加载问题及分析(no session or session was closed)
?
@Override protected Object clone() throws CloneNotSupportedException { return super.clone(); }?
要进行deep clone操作必须把protected改为 public,并且把返回的object改为具体的Bean对象。
?
3、执行clone操作。首先,前提当然是确保事务结束之前session未被关闭,可以使用get实体的操作。
然后看下面例子
?
后续问题研究:?
姑且作为一个比较非主流的解决方案吧,是否适合还是要看大家需求的,没有一套方案是绝对适合的。
使用clone解决延迟加载的弊端:
1、clone的实际开销。
2、查询方式的依赖性。必须根据ID查询方式来查询实体。而且更可以认为耦合度提高了,因为业务层clone操作有时必须依赖DAO特定的查询方式。
当然这些弊端也幸好仅仅针对使用到需要解决延迟加载的时候触发。
经验分享,给大家提供多一套解决方案吧。鱼与熊掌,自己衡量使用。