hibernateキャッシュ戦略・・・の書き方

キャッシュ戦略"read-only"*1を設定してみた。

<hibernate-mapping>
  <class name="hoge.Hoge" table="HOGE">
    <cache usage="read-only"/>
  (略)
</hibernate-mapping>


起動すると以下の警告がでる。

WARN (CacheFactory.java:36) - read-only cache configured for mutable: hoge.Hoge


理由が良く分からなかったのでソースを調べる。

public final class CacheFactory {

    (略)
    if ( usage.equals(READ_ONLY) ) {
      if (mutable) log.warn( "read-only cache configured for mutable: " + name );
      ccs = new ReadOnlyCache();
    }
    (略)
}

つまり記述漏れということだ。

<hibernate-mapping>
  <class name="hoge.Hoge" table="HOGE" mutable="false">
    <cache usage="read-only"/>
  (略)
</hibernate-mapping>


これで起動時の警告が一つ減った。
すっきり〜。


mutableってのはなんじゃいというのはドキュメントに。

mutable="false" と指定された更新不能クラスは、 アプリケーションから更新や削除をできません。 これにより、Hibernateのパフォーマンスが少しだけ良くなります。 *2


・・・弱気だ。