Spring3.2 と JPA を Hibernate4.2.1 Final で使用しています
私のエンティティコードの1つは次のようなものです:
@Entity
@Table(name = "BOOLEAN_VALUES")
@Cache(region = "booleanValues", usage = CacheConcurrencyStrategy.READ_ONLY)
public class BooleanValue {
@Column(name = "NAME")
@NotEmpty
private String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}
この種のエンティティの値は決して変更されないため、キャッシュする必要があります。値は、アプリケーションの起動前にテーブルに挿入されます。これらのテーブルは、ディクショナリ値テーブルのように見えます。
私のehcache.xmlは次のようなものです:
<cache name="booleanValues"
eternal="false" maxElementsInMemory="10000"
maxElementsOnDisk="1000"
overflowToDisk="true"
diskSpoolBufferSizeMB="20"
timeToIdleSeconds="3000"
timeToLiveSeconds="6000"
memoryStoreEvictionPolicy="LFU" />
しかし、アプリケーションを起動するたびに、次の警告が表示されます。構成に問題はありますか? これらのエンティティを不変に設定する方法は?
2013-08-21 09:36:18,983 - org.hibernate.cache.ehcache.internal.strategy.EhcacheAccessStrategyFactoryImpl -2921 [localhost-startStop-1] WARN - HHH020007: read-only cache configured for mutable entity [booleanValues]