hibernate.bytecode.use_reflection_optimizer

来源:互联网 发布:罗永浩大战王自如知乎 编辑:程序博客网 时间:2024/06/09 14:50
Enables the use of bytecode manipulation instead of runtime reflection. This is a System-level property and cannot be set in hibernate.cfg.xml. 

Reflection can sometimes be useful when troubleshooting. Hibernate always requires either CGLIB or javassist even if you turn off the optimizer.


## enable bytecode reflection optimizer (disabled by default)


#hibernate.bytecode.use_reflection_optimizer true



hibernate.bytecode.provider

Both  javassist  or  cglib  can  be  used  as byte manipulation engines; the default is javassist.

e.g. javassist | cglib


在  Hinerbate  中,对集合的延迟抓取的采用了自己的实现方法。但是,对于单端关联的延迟抓
取,则需要采用 其他不同的机制。单端关联的目标实体必须使用代理,Hihernate 在运行期二进
制级(通过优异的 CGLIB 库), 为持久对象实现了延迟载入代理。
默认的,Hibernate3 将会为所有的持久对象产生代理(在启动阶段),然后使用他们实现 多对一
(many-to-one)关联和一对一(one-to-one) 关联的延迟抓取。
在映射文件中,可以通过设置 proxy  属性为目标  class  声明一个接口供代理接口使用。  默认
的,Hibernate  将会使用该类的一个子类。注意:被代理的类必须实现一个至少包可见的默认构
造函数,我们建议所有的持久类都应拥有这样的构造函数。