Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何强制Hibernate3.3或3.5使用CGLib而不是Javassist?_Java_Hibernate_Orm_Cglib - Fatal编程技术网

如何强制Hibernate3.3或3.5使用CGLib而不是Javassist?

如何强制Hibernate3.3或3.5使用CGLib而不是Javassist?,java,hibernate,orm,cglib,Java,Hibernate,Orm,Cglib,是否仍然可以强制Hibernate3.3或3.5使用CGLib而不是Javassist?在我的属性文件中,我设置 hibernate.bytecode.provider = cglib 但这似乎不行。有什么想法吗?似乎有些人没有正确阅读我的答案,所以我将重新措辞:您的休眠。属性看起来正确,属性定义良好,应该可以工作。很抱歉问这个问题,CGlib在类路径上吗 更新:刚刚测试过,适合我。以下是我在初始化时得到的输出: 15 [main] INFO org.hibernate.cfg.Environ

是否仍然可以强制Hibernate3.3或3.5使用CGLib而不是Javassist?在我的属性文件中,我设置

hibernate.bytecode.provider = cglib

但这似乎不行。有什么想法吗?

似乎有些人没有正确阅读我的答案,所以我将重新措辞:您的
休眠。属性看起来正确,属性定义良好,应该可以工作。很抱歉问这个问题,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 15[main]INFO org.hibernate.cfg.Environment-hibernate 3.3.0.SP1 18[main]INFO org.hibernate.cfg.Environment-从资源hibernate.properties加载属性:{hibernate.bytecode.use_reflection_optimizer=false,hibernate.bytecode.provider=cglib} 20[main]INFO org.hibernate.cfg.Environment-字节码提供程序名称:cglib PS:请注意,最近(这并不意味着您将无法使用CGLIB,但它不再维护集成)

是的,也放

hibernate.properties 
进入某个源文件夹,并记住在依赖项中重新打包hibermate cglib:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-cglib-repack</artifactId>
    <version>2.1_3</version>
</dependency> 

org.hibernate
休眠cglib重新打包
2.1_3

请记住,CGLIB库大约有4年没有开发过。但是,您应该尽一切努力使代码与Javassist一起工作,Javassist仍在积极维护中。

这就引出了一个问题。。。。为什么?这是hibernate内部的东西。从hibernate 3.3.2开始,不需要重新打包的cglib版本。并且,至少对于3.2.x,需要指定
-Dhibernate.bytecode.provider=cglib
系统属性,或者创建一个类路径范围的
hibernate.properties
,并定义相同的属性。我不知道它在您的环境中是如何工作的(可能您正在运行与JBoss打包的hibernate?),但是Hibernate需要一个系统属性或类创建时类路径中的
Hibernate.properties
(愚蠢!)来捕获字节码提供程序设置。因此,在类路径中使用
cglib
并不是问题的根源。3.3.1和3.3.2都不能“开箱即用”。@dma_k再次阅读问题,OP的类路径上确实有一个
hibernate.properties
文件(“在我的属性文件中,我设置了”),因此我的回答暗示了这一部分(“并且您的属性定义良好”)。也许你误解了OP和我说的话,在这种情况下,我要求你重新考虑你的投票。我从来没有说过不需要属性文件。@dma\k日志跟踪甚至说明我有一个
hibernate.properties
。你完全误解了我说的话。哦,是的,我错过了。对不起,毛毛+1.