Hibernate.initialize(Obj)用法

在使用hibernate进行持久化时,有时需要动态的改变对象的加载,比如在编辑页面里面lazy=true,而在浏览页面lazy=false,这样可以在需要lazy的地方才进行控制。而配置文件中Lazy属性是全局控制的,如何处理呢?
  当元素或者元素的lazy属性为true时,load() or get() or find()加载这些对象时,Hibernate不会马上产生任何select语句,只是产生一个Obj代理类实例,只有在session没有关闭的情况下运行Obj.getXxx()时才会执行select语句从数据库加载对象,如果没有运行任何Obj.getXxx()方法,而session已经关闭,Obj已成游离状态,此时再运行Obj.getXxx()方法,Hibernate就会抛出"Could not initialize proxy - the owning Session was closeed"的异常,是说Obj代理类实例无法被初始化。然而想在Session关闭之前不调用Obj.getXxx()方法而关闭Session之后又要用,此时只要在Session关闭之前调用Hibernate.initialize(Obj)或者Hibernate.initialize(Obj.getXxx())即可,net.sf.hibernate.Hibernate类的initialize()静态方法用于在Session范围内显示初始化代理类实例。
  在配置文件里面可以用lazy=true,在程序里面可以用强制加载的方法Hibernate.initialize(Object proxy) 方法强制加载这样就相当于动态改变为lazy=false。
  但在使用时需要注意的一点是:其中的proxy是持久对象的关联对象属性,比如A实体,你要把A的关联实体B也检出,则要写Hibernate.initialize(a.b)。  
阅读更多
换一批

OBJ

11-29

1>decorate_plugin.obj : error LNK2019: 无法解析的外部符号 "public: __cdecl vcg::Rubberband::Rubberband(class vcg::Color4)" (??0Rubberband@vcg@@QEAA@V?$Color4@E@1@@Z),该符号在函数 "public: __cdecl decorate_plugin::decorate_plugin(void)" (??0decorate_plugin@@QEAA@XZ) 中被引用rn1>decorate_plugin.obj : error LNK2019: 无法解析的外部符号 "public: void __cdecl vcg::Rubberband::Reset(void)" (?Reset@Rubberband@vcg@@QEAAXXZ),该符号在函数 "public: virtual void __cdecl decorate_plugin::mousePressEvent(class QMouseEvent *,class MeshModel &,class GLArea *)" (?mousePressEvent@decorate_plugin@@UEAAXPEAVQMouseEvent@@AEAVMeshModel@@PEAVGLArea@@@Z) 中被引用rn1>decorate_plugin.obj : error LNK2019: 无法解析的外部符号 "public: bool __cdecl vcg::Rubberband::IsReady(void)" (?IsReady@Rubberband@vcg@@QEAA_NXZ),该符号在函数 "public: virtual void __cdecl decorate_plugin::mousePressEvent(class QMouseEvent *,class MeshModel &,class GLArea *)" (?mousePressEvent@decorate_plugin@@UEAAXPEAVQMouseEvent@@AEAVMeshModel@@PEAVGLArea@@@Z) 中被引用rn1>decorate_plugin.obj : error LNK2019: 无法解析的外部符号 "public: void __cdecl vcg::Rubberband::Drag(class QPoint)" (?Drag@Rubberband@vcg@@QEAAXVQPoint@@@Z),该符号在函数 "public: virtual void __cdecl decorate_plugin::mouseMoveEvent(class QMouseEvent *,class MeshModel &,class GLArea *)" (?mouseMoveEvent@decorate_plugin@@UEAAXPEAVQMouseEvent@@AEAVMeshModel@@PEAVGLArea@@@Z) 中被引用rn1>decorate_plugin.obj : error LNK2019: 无法解析的外部符号 "public: void __cdecl vcg::Rubberband::Pin(class QPoint)" (?Pin@Rubberband@vcg@@QEAAXVQPoint@@@Z),该符号在函数 "public: virtual void __cdecl decorate_plugin::mouseReleaseEvent(class QMouseEvent *,class MeshModel &,class GLArea *)" (?mouseReleaseEvent@decorate_plugin@@UEAAXPEAVQMouseEvent@@AEAVMeshModel@@PEAVGLArea@@@Z) 中被引用rn1>decorate_plugin.obj : error LNK2019: 无法解析的外部符号 "public: void __cdecl vcg::Rubberband::GetPoints(class vcg::Point3 &,class vcg::Point3 &)" (?GetPoints@Rubberband@vcg@@QEAAXAEAV?$Point3@M@2@0@Z),该符号在函数 "public: virtual void __cdecl decorate_plugin::Decorate(class MeshModel &,class GLArea *,class QPainter *)" (?Decorate@decorate_plugin@@UEAAXAEAVMeshModel@@PEAVGLArea@@PEAVQPainter@@@Z) 中被引用rn1>decorate_plugin.obj : error LNK2019: 无法解析的外部符号 "public: void __cdecl vcg::Rubberband::Render(class QGLWidget *)" (?Render@Rubberband@vcg@@QEAAXPEAVQGLWidget@@@Z),该符号在函数 "public: virtual void __cdecl decorate_plugin::Decorate(class MeshModel &,class GLArea *,class QPainter *)" (?Decorate@decorate_plugin@@UEAAXAEAVMeshModel@@PEAVGLArea@@PEAVQPainter@@@Z) 中被引用rn1>..\..\distrib\plugins\\decorate_plugin.dll : fatal error LNK1120: 7 个无法解析的外部命令

没有更多推荐了,返回首页