如何强制Hibernate 3.3或3.5使用CGLIB代替了Javassist?
题
时它仍然能够强制Hibernate 3.3或3.5使用CGLIB代替了Javassist?在我的属性文件,我设置
hibernate.bytecode.provider = cglib
但是,这似乎并没有做到这一点。任何想法?
解决方案
这似乎有些人不正确地读我的答案,所以我会改写:你hibernate.properties
看起来是正确的,该场所被明确定义的,它应该工作。所以,对不起,这个问题,但就是CGLIB的类路径?
更新:只是测试,它为我工作。下面是输出我在初始化时得到:
15 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.3.0.SP1 18 [main] INFO org.hibernate.cfg.Environment - loaded properties from resource hibernate.properties: {hibernate.bytecode.use_reflection_optimizer=false, hibernate.bytecode.provider=cglib} 20 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : cglib
PS:请注意, CGLIB支持最近已弃用(这并不意味着你赢了” T为能够使用CGLIB但它不能维持了集成)。
其他提示
对,也把
hibernate.properties
成一些源文件夹并记住在依赖关系hibermate-CGLIB的重新包装:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-cglib-repack</artifactId>
<version>2.1_3</version>
</dependency>
请记住,CGLIB库不是为大约4年的发展。你应该做的一切然而,为了使你的代码用Javassist,这仍然是积极维护工作。
不隶属于 StackOverflow