Read-OnlyキャッシュとRead/Writeキャッシュ

iBATISではキャッシュから取得したオブジェクトのRead/Writeを許可するか否かについて、以下の3種類の方式があります。

  • Read-Onlyキャッシュ
  • Read/Writeキャッシュ
  • Serializable Read/Writeキャッシュ

Read-Onlyキャッシュ

キャッシュから参照専用オブジェクトとして取得します。
Read-Onlyキャッシュは、非常にパフォーマンスに優れています。ただし、オブジェクトを更新する場合には、データベースもしくはRead/Writeキャッシュを利用して、別途オブジェクトを更新用に取得する必要があります。

Read/Writeキャッシュ

キャッシュから更新可能なオブジェクトを取得します。取得するオブジェクトは、「オブジェクトの実体そのもの」。
Read/Writeキャッシュでは、Sessionごとにキャッシュが保持されます。

Serializable Read/Writeキャッシュ

キャッシュから更新可能なオブジェクトを取得します。取得するオブジェクトは、キャッシュされている「オブジェクトのコピー」。
Serializable Read/Writeキャッシュでは、アプリケーション全体でキャッシュが保持されます。
【利用上の制約】

  • キャッシュするオブジェクトはSerializableである必要がある。
  • Lazy Loadingと組み合わせることはできない(lazy proxiesがSerializableではないから)




参考

  • iBATIS Data Mapper Developer Guide」- 「Caching Mapped Statement Results」