2013-04-12 10 views
9

Sto tentando di aggiornare un'appliaction da Hibernate 3 a Hibernate 4. L'applicazione utilizza ehcache.Hibernate 4 con ehcache richiede la libreria ehcache-core?

Durante l'aggiornamento a Hibernate 4.2.0.Final ho aggiunto una dipendenza su hibernate-ehcache-4.2.0.Final come suggerito.

Quando ho iniziato l'applicazione ho ricevuto il seguente errore:

Caused by: java.lang.NoClassDefFoundError: org/hibernate/cache/TimestampsRegion 

Secondo http://www.javacraft.org/2012/03/migrate-to-hibernate-4-ehcache.html I dovrebbe rimuovere la dipendenza EHCache-core e utilizzare solo la sospensione disponibile vaso per risolvere questo errore.

Ora, se seguo queste istruzioni e rimuovo questa dipendenza, la mia applicazione che utilizza il net.sf.ehcache.CacheManager non compila più.

// For example, this no-longer works 
CacheManager manager = CacheManager.getInstance(); 

Quindi la mia domanda è, posso usare entrambe le librerie e continuare a lavorare come prima (senza aggiornare l'applicazione), o devo cambiare l'applicazione, nel qual caso fa hibernate-EHCache anche fornire le funzionalità richieste per accedere alla cache?

risposta

20

Quando si utilizza Hibernate 4, è necessario utilizzare le classi impacchettate org.hibernate. I net.sf.ehcache quelli che sono bersaglio a Hibernate 3.

Modulo 4 hanno portato a 4 entro il repo Hibernate direttamente (che è la cosa più sensata a nostro parere).

Quindi utilizzare org.hibernate.cache.ehcache.EhCacheRegionFactory dovrebbe risolvere il problema.

+0

no, questo non risolve il problema, ho ottenuto: ** org.hibernate.HibernateException: impossibile creare un'istanza di RegionFactory [org.hibernate.cache.ehcache.EhCacheRegionFactory] – Bourkadi

Problemi correlati