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しろって…(--;