원래 Ehcache와 Hibernate를 따로 쓰고 있는데... 이제서야 따로 쓰지않고 알아서 연동하는게 있다는걸 알았다~!!
1. pom.xml
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>4.2.8.Final</version>
</dependency>
2. hibernate Setting 바꾸기!!!! (아주 중요!!)
Hibernate 3.3 and higher
For instance creation:
<property name="hibernate.cache.region.factory_class">
net.sf.ehcache.hibernate.EhCacheRegionFactory</property>
To force Hibernate to use a singleton of Ehcache CacheManager:
<property name="hibernate.cache.region.factory_class">
net.sf.ehcache.hibernate.SingletonEhCacheRegionFactory</property>
Hibernate 4.x
For Hibernate 4, use org.hibernate.cache.ehcache.EhCacheRegionFactory
instead ofnet.sf.ehcache.hibernate.EhCacheRegionFactory
andorg.hibernate.cache.ehcache.SingletonEhCacheRegionFactory
instead ofnet.sf.ehcache.hibernate.SingletonEhCacheRegionFactory
.
2.1 설정에서 반드시 이것을 확인하자!!
하이버네이트 3 : net.sf.ehcache.hibernate.EhCacheRegionFactory
하이버네이트 4 : org.hibernate.cache.ehcache.EhCacheRegionFactory
2.2 아래와 같은 에러가 발생한다면 무조건!! 위의 사항 확인할것!!!!
Caused by: java.lang.ClassNotFoundException: org.hibernate.cache.TimestampsRegion
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 67 more
2.3 본인은 하이버네이트4 버전이라서 아래와 같이 설정을 추가하였다.
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop>
3. 그리고 모델에 적용하기~! 각 모델에 아래와 같이 @Cache 애노테이션을 사용하면 편리하게 적용이 완료~!
@Entity
@Table (name = "Action")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Action {
'Development > Web & Server' 카테고리의 다른 글
[Spring Framework] AOP 활용하기~! (0) | 2014.01.15 |
---|---|
[Hibernate] DB 특정 값 암호화하여 사용하기~! (Jasypt) (0) | 2014.01.10 |
[Hibernate] Date 검색 (0) | 2014.01.06 |
[Hibernate] @ManyToMany 자기 자신의 collection가지기~! (친구 리스트를 가지고 있기) (0) | 2014.01.04 |
[Mysql] errno: 150 발생시!! (0) | 2014.01.03 |