2008年10月10日金曜日

Cayenneでキャッシュする

■DataContext(ObjectContext)のインスタンス毎にキャッシュする。

SelectQuery query = new SelectQuery(Tag.class);
query.setName("sql1");
query.setCacheStrategy(QueryCacheStrategy.LOCAL_CACHE);//…①
// 初回はSQL実行
List res = dataContext.performQuery(query);


// 2回目以降はキャッシュから取得
res = dataContext().performQuery(query);


// 再度SQLを実行
query.setCacheStrategy(QueryCacheStrategy.LOCAL_CACHE_REFRESH);//…②
res = dataContext().performQuery(query);


■VMのインスタンス毎にキャッシュする。
①②を以下のようにすればよい。
①:QueryCacheStrategy.SHARED_CACHE
②:QueryCacheStrategy.SHARED_CACHE_REFRESH

■異なるVMのインスタンス毎にもキャッシュできる
あとで記載。

以上

0 件のコメント:

コメントを投稿