EzJDBCでキャッシュする方法!


EzJDBCでは照会結果をキャッシュする機能が存在します。

キャッシュするには「EzJDBC#cache()」メソッドで指定します。

// テーブル情報インスタンスを生成
CUSTOMER _CS = new CUSTOMER();
// CUSTOMERテーブルを照会するJDBCインスタンスを生成します
EzJDBC jdbc = new EzJDBC().from(_CS);

// トランザクションを開始します。
EzTx.begin();
// listに格納されたcustomerを参照
for(String id: list) {
   // IDを指定してCUSTOMERを取得する
   Customer customer = jdbc.where(_CS.ID.eq(id)).cache().find(Customer.class);
   ...
}
// トランザクションを終了します。
EzTx.end();

Entityはwhereメソッドで指定された「項目名:値」でキャッシュします。

キャッシュする期間は「EzTx#begin()」から「EzTx#end()」です。

EzJDBC#cache()メソッドの場合は、無制限にキャッシュしますが、OOM(アウト・オブ・メモリ)を避けるため、「EzJDBC#cache(long)」メソッドがあります。
シグニチャに指定された数のみキャッシュし、指定した数を超えた場合は、照会頻度の低いEntityから解放します。


繰り返し処理中に同一テーブルを照会する場合には便利な機能ではないでしょうか。。。


う〜ん!そんな処理が必要場合はJOINしろって…(--;