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」