在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了。