2013-04-12 19 views
9

Tôi đang cố nâng cấp một ứng dụng từ Hibernate 3 lên Hibernate 4. Ứng dụng sử dụng ehcache.Hibernate 4 với ehcache có cần thư viện lõi ehcache không?

Khi nâng cấp lên Hibernate 4.2.0.Tôi đã thêm phụ thuộc vào hibernate-ehcache-4.2.0.Final như được đề xuất.

Khi tôi bắt đầu lên các ứng dụng tôi nhận được lỗi sau:

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

Theo http://www.javacraft.org/2012/03/migrate-to-hibernate-4-ehcache.html tôi nên loại bỏ sự phụ thuộc vào ehcache lõi và chỉ sử dụng Hibernate cung cấp jar để khắc phục lỗi này.

Bây giờ, nếu tôi làm theo các hướng dẫn này và loại bỏ sự phụ thuộc này, ứng dụng của tôi sử dụng trình biên dịch net.sf.ehcache.CacheManager không còn biên dịch nữa.

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

Vì vậy, câu hỏi của tôi là, tôi có thể sử dụng cả hai thư viện và tiếp tục làm việc như trước đây (Nếu không cập nhật các ứng dụng), hoặc làm tôi phải thay đổi các ứng dụng, trong trường hợp không ngủ đông-ehcache thậm chí cung cấp các chức năng cần thiết để truy cập bộ nhớ cache?

Trả lời

20

Khi sử dụng Hibernate 4, bạn phải sử dụng các lớp đóng gói org.hibernate. Các net.sf.ehcache những là mục tiêu tại Hibernate 3.

Mẫu 4 họ đã chuyển đến 4 trong repo Hibernate trực tiếp (đó là điều hợp lý nhất theo ý kiến ​​của chúng tôi).

Vì vậy, sử dụng org.hibernate.cache.ehcache.EhCacheRegionFactory sẽ giải quyết được sự cố của bạn.

+0

không, đây không phải là giải quyết vấn đề, tôi đã nhận :: ** org.hibernate.HibernateException: không thể khởi tạo RegionFactory [org.hibernate.cache.ehcache.EhCacheRegionFactory] – Bourkadi

Các vấn đề liên quan