JSP 개발 의 hibenate 2 급 캐 시 설정 방법
hibenate 2 급 캐 시 는 프로 세 스 급 캐 시 나 Session Factory 급 캐 시 라 고도 합 니 다.
2 급 캐 시 는 전역 캐 시 입 니 다.모든 session 에서 공유 할 수 있 습 니 다.
2 급 캐 시 는 수명 주기 와 Session Factory 의 수명 주기 가 일치 하 며,Session Factory 는 2 급 캐 시 를 관리 할 수 있 습 니 다.
자주 사용 하 는 캐 시 플러그 인 Hibernater 2 급 캐 시 는 플러그 인 입 니 다.다음은 몇 가지 자주 사용 하 는 캐 시 플러그 인 입 니 다.
우선 hibenate.cfg.xml 에서 2 급 캐 시 를 엽 니 다.
<hibernate-configuration>
<session-factory>
......
<!-- -->
<property name="hibernate.cache.use_second_level_cache">true</property>
<!-- " " findall()、list()、Iterator()、createCriteria()、createQuery() , -->
<property name="hibernate.cache.use_query_cache">true</property>
<!-- EHCache Provider -->
<!-- <property name="hibernate.cache.provider_class">
org.hibernate.cache.EhCacheProvider
</property> -->
<!-- -->
<!--<property name="hibernate.cache.region_prefix">test</property>-->
<!-- -->
<property name="hibernate.cache.region.factory_class">
net.sf.ehcache.hibernate.EhCacheRegionFactory
</property>
<!-- Hibernate4 org.hibernate.cache.ehcache.EhCacheRegionFactory -->
<!-- -->
<!-- <property name="hibernate.cache.provider_configuration_file_resource_path">
ehcache.xml
</property> -->
<!-- Hibernate -->
<property name="hibernate.cache.use_structured_entries">true</property>
<!-- Hibernate -->
<property name="hibernate.generate_statistics">true</property>
......
</session-factory>
</hibernate-configuration>
그리고 ehcache 설정(ehcache.xml)cache 매개 변수 설명:
●name:지정 영역 도 메 인 이름
●maxElementsInMemory:메모리 에 캐 시 된 최대 수
●maxElementsOnDisk:디스크 에 캐 시 된 최대 수
●eternal:설정 이 영원히 만 료 되 지 않 을 지 여부
●overflow ToDisk:하드디스크 넘 침 수
●timeToIdleSeconds:대상 이 남 은 상태 인 최대 초 후 폐기
●timeToLive Seconds:대상 이 캐 시 상태 인 최대 초 후 폐기
●memory StoreEvictionPolicy:캐 시 알고리즘,LRU(기본 값),LFU,LFU
캐 시 알고리즘 에 대해 서 는 세 가지 가 있 습 니 다.
●LRU:(Least Rencently Used)새로 들 어 온 대상 을 교체 해서 사용 시간 을 계산 하면 최근 에 거의 사용 하지 않 는 대상
●LFU:(Least Frequently Used)적중률 높낮이 로 낮은 대상 교체
●LFU:(First In First Out)2 급 캐 시 에 가장 먼저 들 어간 대상 을 교체
Xml 코드
<?xml version="1.0" encoding="UTF-8"?>
<ehcache>
<!-- -->
<diskStore path="D:/ehcache"/>
<!-- cache: , -->
<defaultCache maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="300"
timeToLiveSeconds="600"
overflowToDisk="false"/>
<!-- cache: name ,name Hibernate -->
<cache name="cn.javass.h3test.model.UserModel"
eternal="false"
maxElementsInMemory="100"
timeToIdleSeconds="1200"
timeToLiveSeconds="1200"
overflowToDisk="false">
</cache>
</ehcache>
모든 실체의 hbm 파일 에 cache 요 소 를 설정 합 니 다.usage 는 read-only 또는 read-write 등 4 가지 일 수 있 습 니 다.Xml 코드
<class>
<!-- read-only read-write nonstrict-read-write transactional-->
<class name="cn.java.test.model.User" table="TBL_USER">
<cache usage="read-write"/>
......
</class>
</hibernate-mapping>
** Hibernate **
**Java
@Entity
@Table
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class User implements Serializable {
private static final long serialVersionUID = -5121812640999313420L;
private Integer id;
private String name;
......
}**
이상 은 hibenate 2 급 캐 시 를 실현 하 는 두 가지 방법 입 니 다.본 사이트 에 서 는 JSP hibenate 개발 에 관 한 글 이 많 습 니 다.많이 찾 아 보 세 요.읽 어 주 셔 서 감사합니다. 도움 이 되 셨 으 면 좋 겠 습 니 다.본 사이트 에 대한 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Quarkus에서 배치 실행을 위해 프로그래밍 방식으로 Hibernate Commit 제어배치 실행에서 엄청난 양의 데이터를 처리해야 하는 경우 Hibernate가 수행하는 커밋 수를 제어하는 것이 중요합니다. 커밋은 가장 비용이 많이 드는 데이터베이스 작업 중 하나입니다. Quarkus에서는 @Tran...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.