OpenJPA可以采用多種方式配置緩存,不僅支持多個虛擬機(Multi-JVM)緩存。常用的緩存配置屬性如下所示。
— 屬性名:openjpa.DataCache 
    描述:是否緩存數(shù)據(jù),對應配置的API為 org.apache.openjpa.conf.OpenJPAConfiguration. getDataCache。
    可選值:
    — true:啟用緩存。
    — false(默認):不使用緩存。
    示例一:啟用緩存
    <property name="openjpa.DataCache" value="true"/>
    示例二:啟用緩存,并且設置緩存的容量為5000,并且禁用軟引用容量
    <property name="openjpa.DataCache" value="true(CacheSize=5000, SoftReferenceSize=0)"/>
— 屬性名:openjpa.QueryCache 
    描述:是否緩存查詢結果,對應配置的API為 org.apache.openjpa.conf.OpenJPAConfiguration. getQueryCache。
    可選值:
    — true(默認):啟用查詢結果緩存,同時openjpa.DataCache設置為true。
    — false:禁用啟用查詢結果緩存。
    示例一:啟用查詢結果緩存,緩存的容量為1000,并且軟引用的容量為100
    <property name="openjpa.QueryCache" value="CacheSize=1000, SoftReferenceSize=100"/>
    示例二:禁用查詢結果緩存
    <property name="openjpa.QueryCache" value=" false"/>
— 屬性名:openjpa.QueryCompilationCache 
    描述:緩存的數(shù)據(jù)存儲類型。
    可選值:
    — true(默認):將使用org.apache.openjpa.util.CacheMap緩存數(shù)據(jù)。CacheMap緩存固定容量和一些軟引用的數(shù)據(jù),這種方式能夠保證緩存的容量在一定的范圍內。
    — all:將使用org.apache.openjpa.lib.util.ConcurrentHashMap緩存數(shù)據(jù)。緩存效率高,但數(shù)據(jù)永遠不會自動清空,如果頻繁地動態(tài)查詢,將會占用大量的內存。但如果只是涉及參數(shù)查詢,則可以選中該方式。
    — false:禁用緩存。
    示例:啟用查詢結果緩存,緩存的容量為1000,并且軟引用的容量為100
    <property name=" openjpa.QueryCompilationCache " value="true "/>