1

iBatisforORMを使用したJavaEEWebアプリケーションがあります。ドロップダウンの1つ(選択ボックス)には、フラットファイルをOracleデータベーステーブルにロードするcronジョブを介して毎日(たとえば午前4時)に更新されるマスターデータが表示されます。

ドロップダウン/選択ボックスには最大1000レコードをリストする必要があり、24時間の静的データであったため、iBatisのCacheModel機能を使用しました。選択クエリは、「ReadOnly = true&Serialized = true flushInterval = 24 hours」の設定でCacheModelを使用するように作成されたため、単一のキャッシュがすべてのユーザー間で共有されます。

このマスターデータを変更するためにアプリケーションから挿入/更新/削除操作が発生することはありません

質問

このOracleテーブルへのデータのロードに失敗し、テーブルにデータを手動でロードする前の日にiBatisキャッシュがフラッシュされた場合、失敗したcronを再実行した日の間にiBatisキャッシュを再度フラッシュするにはどうすればよいですか?仕事 ?

アプリケーションからの挿入/更新/削除操作はありませんのでご注意ください

4

1 に答える 1

1

プログラムでキャッシュをフラッシュできます。

2つの方法があります

void flushDataCache() 
Flushes all data caches.

void flushDataCache(java.lang.String cacheId) 
Flushes the data cache that matches the cache model ID provided.

SqlMapClientインターフェイスで。

http://ibatis.apache.org/docs/java/user/com/ibatis/sqlmap/client/SqlMapClient.html

于 2012-11-19T18:49:33.043 に答える