hibernate:java.lang.RuntimeException: duplicate method:
在Hibernate3.3后版本中,使用的字节码增强包默认是javassist了。而在3.2.6中默认使用的是cglib。要在3.3中更换为cglib,需要进行如下操作:
1. 在classpath下,添加hibernate.properties文件,并添加如下一行
hibernate.bytecode.provider=cglib
这行属性配置就是指定字节码生成包使用cglib。注意:
1) 一定要写成key=value形式,我按照Hibernate下载包中提供properties样板文件写成了hibernate.bytecode.provider cglib,死活不行。
2) 不能通过在hibernate.cfg.xml文件中配置:<property name="hibernate.bytecode.provider">cglib</property>来更换,一定要在hibernate.properties中配置才起效。
2. 添加cglib.jar到classpath中。Hibernate下载包中提供了cglib2.2.jar,但还需要添加cglib包依赖的asm3.1包。所以,干脆上cglib官网下载cglib-nodep-2.2.jar
完成以上两个步骤后,就把字节码生成包更换为cglib了。