Java コードでキャッシュされたマップが必要です。マップは DB からロードされ、(マップ内のすべてのデータについて) DB から定期的に再ロードする必要があります。現在、新しいパッケージをインポートできないためです。Google の guava パッケージまたはコード例に既存の関数はありますか?
マップがスレッドセーフとして実装されている方がよいでしょう。でも、シンプルでなくてもOKです。
「LoadingCache」は私が好きなものですが、最初にデータをマップに入れるためのデータ初期化メソッドがありません。そして、マップの有効期限が切れた後、「get」が来るたびにDBに到達する必要があります。
ありがとうございました!
いくつかのサンプル コードがここで役立つ場合があります。
public interface AToBMapper
{
public static final String DEFAULT_B_NAME = "DEFAULT";
public String getBForA(final String a);
}
public class AToBMapperImpl implements AToBMapper
{
private final SomeDAO dao;
private Map<String, String> cachedMap;
public AToBMapperImpl(final SomeDAO dao)
{
this.dao = dao;
cachedMap = new HashMap<String, String>();
}
public String getBForA(final String a)
{
// if the map is not initialized, initialize it with the data
// if the map is expired, refresh all the data in the map
// return the mapped B for A (if there is no mapping for A, return the "DEFAULT")
}
private Map<String, String> getTheData(final List<String> listOfB)
{
Map<String, String> newData = dao.getAToBMapping(listOfB);
}
}