0

2nd Level Cache で利用可能なすべてのエントリを取得するにはどうすればよいですか?

私のアプリケーションは、cache.removeAll(); によって再キャッシュを行います。Hibernate 2nd Level に all() をリストします。必要なすべてのエントリがキャッシュされます。

そして、この15分間..第2レベルからすべてのエントリを取得したいだけです(DBにアクセスせずに)

下の裏地が頻繁に変更されるため、休止状態のクエリを使用したくありません。

他にどのようなオプションがありますか?

4

1 に答える 1

0

私は以下を使用してこれを達成することができます:

私のキーが文字列であると仮定します:

List keys = Ehcache.getKeysWithExpiryCheck();
List<ABC> abcList = new ArrayList();

for(Object key = keys){
    String k = (String)((CacheKey) key).getKey();
    abcList.add(dao.get(k));
}

dao.get() は、データベースの前に最初にキャッシュにヒットします。

=) 誰かがより良い解決策を見つけたら、私に知らせてください。

于 2013-01-09T13:44:54.843 に答える