Come forzare Hibernate 3.3 o 3.5 di utilizzare CGLIB invece di Javassist?
Domanda
E 'ancora possibile forzare Hibernate 3.3 o 3.5 di utilizzare CGLIB invece di Javassist? Nel file delle mie proprietà, ho impostato
hibernate.bytecode.provider = cglib
Ma questo non sembra farlo. Ogni pensiero?
Soluzione
Sembra che alcune persone non hanno letto la mia risposta corretta quindi mi riformulare: il tuo hibernate.properties
sembra corretto, la proprietà è ben definito, dovrebbe funzionare. Quindi, mi dispiace per la domanda, ma è CGLIB sul classpath?
Aggiornamento: appena provato e funziona per me. Ecco l'uscita ottengo in fase di inizializzazione:
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: Si noti che il supporto CGLIB è stato deprecato recente (questo non significa che hai vinto' t essere in grado di utilizzare CGLIB ma l'integrazione non più mantenuto).
Altri suggerimenti
Si, anche mettere
hibernate.properties
in qualche cartella di origine e ricordarsi di avere il hibermate-cglib-repack in dipendenze:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-cglib-repack</artifactId>
<version>2.1_3</version>
</dependency>
Ricordate che libreria CGLIB non si sviluppa per circa 4 anni. Si dovrebbe fare di tutto però per rendere il codice a lavorare con Javassist, che è ancora mantenuto attivamente.