Az OpenJPA alapértelmezés szerint letiltja a második szintű gyorsítótárat, míg az EclipseLink alapértelmezés szerint engedélyezi azt. Ha egy gyorsítótárat nem használó alkalmazást állít át, akkor az EclipseLink megvalósításban a következő elem beállításával tilthatja le a gyorsítótárat a 2.0 vagy 2.1 változatú persistence.xml fájlban:
<shared-cache-mode>NONE</shared-cache-mode>
Az 1.0 változatú persistence.xml fájl esetén a gyorsítótárat az EclipseLink megvalósításban a következő tulajdonság hozzáadásával tilthatja le:
<property name="eclipselink.cache.shared.default" value="false"/>
Ez a szabály észleli a <persistence-unit> konfigurációt
a META-INF/persistence.xml fájlban, ahol
a jelenlegi gyorsítótár konfiguráció egy eltérő
alapértelmezett gyorsítótárazási viselkedést eredményez az EclipseLink
megvalósításban. Segítséget nyújt az openjpa.DataCache
tulajdonságok takarításához is, amelyeket az EclipseLink figyelmen kívül
hagy.
Annak megállapításához, hogy szükséges-e a konfiguráció módosítása, a szabály a következő beállítások kombinációit vizsgálja meg:
<shared-cache-mode> konfigurációs
elemjavax.persistence.sharedCache.mode perzisztencia
tulajdonságopenjpa.DataCache perzisztencia tulajdonság
Ha az openjpa.DataCache tulajdonság nincs megadva
vagy false értékre van beállítva, és a megosztott
gyorsítótárazási mód ki van hagyva vagy UNSPECIFIED értékre
van beállítva, akkor az EclipseLink megvalósításban módosítani kell a
konfigurációt, hogy letiltsa a gyorsítótárazást.
Mivel az EclipseLink
alapértelmezés szerint engedélyezi a gyorsítótárazást, az OpenJPA
megvalósításban egy true értékre beállított
openjpa.DataCache tulajdonság egyenértékű azzal, hogy az
EclipseLink megvalósításban nincs megosztott gyorsítótárazási mód
beállítás, vagy a shared-cache-mode tulajdonság
ALLértékre van beállítva.
Ha kézzel eltávolítja az openjpa.DataCache konfigurációt,
akkor ne futtassa tovább ezt a szabályt, mert egyetlen konfigurációt sem
fog viselkedésváltozásként észlelni.
A szabályhoz tartozó automatikus javítás a megosztott gyorsítótár mód kifejezett értékét állítja be, így a szabály nem jelzi a megmaradási egységjelzését.
Az automatikus javítás kiértékeli a openjpa.DataCache beállítást, és módosítja a meglévő vagy újat
megosztott-cache-mode konfiguráció vagy javax.persistence.sharedCache.mode tulajdonságok, hogy az alkalmazásai a EclipseLink alkalmazásban azonos gyorsítótár módú viselkedéssel rendelkeznek, mint az OpenJPAalkalmazásban.
Az OpenJPA megvalósításban, amikor egy specifikáció által meghatározott
megosztott gyorsítótár érték és az openjpa.DataCache
tulajdonság egyaránt be van állítva, akkor a specifikáció által megadott
érték kerül felhasználásra, kivéve, ha az UNSPECIFIED.
Ha az érték UNSPECIFIED, akkor az
openjpa.DataCache tulajdonság kerül felhasználásra a
megosztott gyorsítótárazási mód helyes értékének megállapításához.
Például a következő persistence.xml
fájlban a szabály megjelöli az összes
<persistence-unit> elemet, mert ezek gyorsítótárazási
konfigurációját módosítani kell, hogy megmaradjon ugyanaz a
gyorsítótárazási viselkedés az EclipseLink megvalósításban, mint ami
korábban volt az OpenJPA megvalósításban.
| Forrás persistence.xml fájl OpenJPA esetén | Automatizált javítás módosításai persistence.xml fájlba EclipseLink |
|---|---|
<persistence>
<persistence-unit name="example1">
...
<shared-cache-mode>UNSPECIFIED</shared-cache-mode>
...
</persistence-unit>
<persistence-unit name="example2">
...
<properties>
<property name="openjpa.DataCache" value="true"/>
</properties>
...
</persistence-unit>
<persistence-unit name="example3">
...
<properties>
<-- no cache properties set -->
</properties>
...
</persistence-unit>
<persistence-unit name="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>NONE</shared-cache-mode>
<properties>
<-- no cache properties set -->
</properties>
...
</persistence-unit>
<persistence-unit name="example4">
...
<properties>
<property name="javax.persistence.sharedCache.mode"
value="ALL"/>
</properties>
...
</persistence-unit>
</persistence>
|
Az automatikus javítás törli a openjpa.DataCache tulajdonságot, ha az egyszerű
true vagy false érték.
Ha a openjpa.DataCache tulajdonságkonfiguráció további paraméterekkel rendelkezik, mint például a következő példában, akkor az automatikus javítás elhagyja a tulajdonságot, így meghatározhatja, hogy szükség van-e további kézi módosításra.
Értékelje ki az openjpa.DataCache tulajdonságot, hogy
szükséges-e további átállítás, majd távolítsa el a tulajdonságot,
mert az EclipseLink nem használja.
<property name="openjpa.DataCache" value="true(Types=com.test.Person;com.test.Employee)"/>
Ha a megosztott gyorsítótár mód és a javax.persistence.sharedCache.mode ugyanabban a perzisztencia egységben van meghatározva, akkor az automatikus javítás frissíti a megosztott gyorsítótár mód értéket, ha szükséges és törli a javax.persistence.sharedCache.mode tulajdonságot.
A JPA 1.0 < span osztály= "FilePath">persistence.xml< /span> fájlok, a \tcode> < osztott-cache-mode> < /code> elem érvénytelen. Az automatikus javítás kiértékeli a < code>openjpa.DataCache< /code> és < code>javax.persistence.sharedCache.mode< /code> perzisztencia tulajdonságokat, és hozzáad egy code>eclipselink.cache.shared.default< /code> perzisztencia tulajdonságot, ha szükséges.
Másolja az egyéni konfigurációt az alkalmazás összeépítési fájljába a javítás automatizálásához.
A szállítóra jellemző JPA konfigurációs tulajdonságok átállításával kapcsolatos további információkért tekintse meg a következőket: