我试图添加cglib作为默认字节码提供程序.我正在使用hibernate.cfg.xml文件来配置会话工厂.
<property name="hibernate.bytecode.provider">cglib</property>
Run Code Online (Sandbox Code Playgroud)
我的配置文件中的上面一行代码不会对行为进行任何更改.它仍设置javassist为字节代码提供程序.
原来是'javaassist'被设置为默认提供者.此配置在环境表单hibernate.properties文件中更新.除了Environment类的静态初始化程序之外,我没有找到任何对字节代码提供程序创建者方法的引用.
是否有任何明确的方法从xml配置文件中分配默认字节代码生成器.
Hibernate有两个属性范围:
- 工厂级属性可以在实例化时传递给SessionFactory.每个实例可能具有不同的属性值.如果未指定任何属性,则工厂将调用Environment.getProperties().
- 系统级属性由所有工厂实例共享,并始终由Environment属性确定.
唯一的系统级属性是
- hibernate.jdbc.use_streams_for_binary在
- hibernate.cglib.use_reflection_optimizer
通过调用System.getProperties()然后从名为/hibernate.properties的资源(如果存在)填充环境属性.系统属性覆盖hibernate.properties中指定的属性.
但是,这并不完全正确.在查看源代码之后,很明显它hibernate.bytecode.provider也是一个系统级属性,因此无法hibernate.cfg.xml仅在其中指定hibernate.properties.
| 归档时间: |
|
| 查看次数: |
4406 次 |
| 最近记录: |