2010-02-24 14 views

risposta

7

Sembra che alcune persone non abbiano letto correttamente la mia risposta, quindi riformulerò: il tuo hibernate.properties sembra corretto, la proprietà è ben definita, dovrebbe funzionare. Quindi, mi dispiace per la domanda ma CGlib è sul classpath?

Aggiornamento: Appena testato 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 CGLIB support has been deprecated di recente (questo non significa che non sarà in grado di utilizzare CGLIB ma l'integrazione non più mantenuto).

+0

Non so come funzioni nel tuo ambiente (forse stai eseguendo Hibernate impacchettato con JBoss?), Ma Hibernate ha bisogno di una proprietà di sistema o di un 'hibernate.properties' in classpath sulla creazione della classe (stupido!) Per catturare il bytecode impostazione del provider. Quindi avere 'cglib' in classpath non è una radice del problema. Entrambi 3.3.1 e 3.3.2 non funzionano "fuori dalla scatola". –

+0

@dma_k Leggi di nuovo la domanda, l'OP ** non ha un file 'hibernate.properties' (*" Nel mio file delle proprietà, ho impostato "*) sul classpath, quindi questa parte è implicita dalla mia risposta (* "e la tua proprietà è ben definita" *). Forse ** tu ** hai frainteso ciò che l'OP e ho detto, nel qual caso ti chiedo di riconsiderare il tuo voto. Non ho mai detto che il file delle proprietà non era necessario. –

+0

@dma_k La traccia del registro mostra anche che ho un 'hibernate.properties'. Hai completamente frainteso quello che ho detto. –

1

Sì, 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> 
+0

A partire da Hibernate 3.3.2 la versione riassemblata di cglib non è necessaria. E, almeno per 3.2.x, sulla necessità di speiofy della proprietà di sistema '-Dhibernate.bytecode.provider = cglib' o per creare un' hibernate.properties 'di classe classpath con la stessa proprietà definita. –

1

Ricordati che libreria CGLIB non si sviluppa per circa 4 anni . Dovresti comunque fare tutto il possibile per far funzionare il tuo codice con Javassist, che viene comunque mantenuto attivamente.

Problemi correlati