지속성 단위 L2(second-level) 캐시 사용 안함 설정

OpenJPA에서는 기본적으로 L2(second-level) 캐시를 사용 안함으로 설정하는 반면 EclipseLink에서는 기본적으로 L2(second-level) 캐시를 사용으로 설정합니다. 이 캐시를 사용하지 않는 애플리케이션을 마이그레이션하는 경우, 버전 2.0 또는 2.1 persistence.xml 파일에서 다음 요소를 설정하여 EclipseLink에서 캐시를 사용 안함으로 설정할 수 있습니다.

   <shared-cache-mode>없음</shared-cache-mode>

버전 1.0 persistence.xml 파일의 경우, 다음 특성을 추가하여 EclipseLink에서 캐시를 사용 안함으로 설정할 수 있습니다.

   <property name="eclipselink.cache.shared.default" value="false"/>

이 규칙은 현재 캐싱 구성의 결과인 META-INF/persistence.xml 파일에서 현재 캐싱 구성으로 인해 EclipseLink 에서 다른 기본 캐싱 동작으로 변경합니다. 또한 청소하는 데 도움이 됩니다 EclipseLink 에서 무시되는 openjpa.DataCache 속성을 정리하는 데도 도움이 됩니다.

구성 변경이 필요한지 여부를 판별하기 위해 규칙은 다음 설정을 조합하여 검사합니다.

openjpa.DataCache 특성을 지정하지 않거나 false로 설정되었고 공유 캐시 모드 구성이 누락되었거나 UNSPECIFIED로 설정된 경우 EclipseLink에서 캐시를 사용하지 않도록 구성을 변경해야 합니다. EclipseLink는 기본적으로 캐싱을 사용하므로 OpenJPA에서 openjpa.DataCache 특성을 true로 설정하는 것은 EclipseLink에서 공유 캐시 모드 설정이 없거나 shared-cache-modeALL로 설정하는 것과 같습니다. 수동으로 openjpa.DataCache 구성을 제거하는 경우, 이 규칙은 구성 없음을 동작 변경으로 감지하므로 이 규칙을 실행하지 마십시오.

이 규칙에 대한 자동 수정은 공유 캐시 모드에 대한 명시적 값을 설정합니다 규칙이 지속성 단위에 플래그를 계속 지정하지 않도록 합니다. 자동화된 수정은 openjpa.DataCache 설정을 평가하고 기존 설정을 수정하거나 새 공유 캐시 모드 구성 또는 javax.persistence.sharedCache.mode 속성 를 추가하여 애플리케이션이 EclipseLink 에서 OpenJPA 에서와 동일한 캐시 모드 동작을 하도록 합니다. OpenJPA에서 스펙 정의 공유 캐시 값과 openjpa.DataCache 특성이 모두 설정된 경우 스펙 정의 값이 UNSPECIFIED가 아니면 이 값이 사용됩니다. 값이 UNSPECIFIED이면, openjpa.DataCache 특성이 사용되어 공유 캐시 모드의 올바른 값을 판별합니다.

예를 들어 다음 persistence.xml 파일에서, 규칙은 모든 <코드><지속성-단위></코드> 요소에 플래그를 지정합니다 동일한 캐싱 동작을 유지하기 위해 캐싱 구성을 변경해야 하기 때문입니다 EclipseLink 캐싱 동작을 OpenJPA 에서와 동일하게 유지하려면 캐싱 구성을 변경해야 하기 때문입니다.

OpenJPA의 소스 persistence.xml 파일 persistence.xml 파일에 대한 자동 수정 변경 사항 EclipseLink
<persistence> <지속성 단위 이름=" example1 ">...
    <shared-cache-mode>불특정</shared-cache-mode>... </persistence-unit> <지속성-단위 이름=" example2 ">... <properties> <property name="openjpa.DataCache" value="true"/> </properties>... </persistence-unit> <지속성-단위 이름=" example3 ">... <properties><-- 캐시 속성이 설정되지 않았습니다 --></properties>... </persistence-unit> <지속성-단위 이름=" example4 ">... <properties> <property name="openjpa.DataCache" 
                  value="false"/> <property name="javax.persistence.sharedCache.mode" 
                  value="ALL"/> </properties>... </persistence-unit> </persistence>
<persistence>

  <persistence-unit name="example1">
    ...
    <shared-cache-mode>NONE</shared-cache-mode>... </persistence-unit> <persistence-unit name="example2"> ...
     <shared-cache-mode>ALL</shared-cache-mode> <properties></properties>... </persistence-unit> <persistence-unit name="example3"> ...
     <shared-cache-mode>없음</shared-cache-mode> <properties><-- 캐시 속성 설정 없음 --></properties>... </persistence-unit> <persistence-unit name="example4">... <properties> <property name="javax.persistence.sharedCache.mode" 
                  value="ALL"/> </properties>...</persistence-unit> </persistence>

자동화된 수정은 단순 속성이 있는 경우 openjpa.DataCache 속성이 단순한 또는 거짓 값인 경우 프로퍼티를 삭제합니다. 속성 구성에 openjpa.DataCache 속성 구성에 추가 매개변수가 있는 경우 가 있는 경우 자동화된 수정이 프로퍼티를 떠나므로 추가 수동 변경이 필요한지 확인할 수 있습니다 추가 수동 변경이 필요한지 확인할 수 있습니다. 추가 마이그레이션이 필요한지 openjpa.DataCache 특성을 평가한 다음 특성을 제거하십시오. EclipseLink에서는 이 특성을 사용하지 않습니다.

    <property name="openjpa.DataCache" value="true(Types=com.test.Person;com.test.Employee)"/>

공유 캐시 모드와 javax.persistence.sharedCache.mode가 모두 동일한 지속성 단위로 가 동일한 지속성 단위로 정의된 경우 자동화된 수정은 필요한 경우 shared-cache-mode 값을 업데이트하고 javax.persistence.sharedCache.mode 속성을 삭제합니다.

JPA 1.0 persistence.xml 파일의 경우, <공유 캐시 모드> 요소가 유효하지 않습니다. 자동화된 수정은 openjpa.DataCachejavax.persistence.sharedCache.mode 지속성 속성 값을 평가하고 필요한 경우 <코드> eclipselink.cache.shared.default 지속성 속성을 추가합니다.

수정사항 자동화를 사용으로 설정하려면 사용자 정의 구성을 애플리케이션 빌드 파일에 복사하십시오.

벤더 특정 JPA 구성 특성 마이그레이션에 대한 자세한 정보는 다음 자원을 참조하십시오.