@Cachableを使用するメソッドがあります
@Cacheable(value="airport", key="#filter")
public static String getAirport(String filter, SessionFactory sessionFactory){
String airportsDisplay = "";
Session session = sessionFactory.openSession();
airportsDisplay = (String) session.createQuery("select iata from Airports a where a.displaystr = :accfilter").setString("accfilter", filter.toUpperCase()).uniqueResult();
session.close();
return airportsDisplay;
}
指定されたフィルターを使用したデータベースクエリのみを実行し、空港名を返します。
xmlconfiguratinは
<cache name="airport"
maxElementsInMemory="100"
eternal="false"
timeToIdleSeconds="1200"
timeToLiveSeconds="1200"
overflowToDisk="true"
maxElementsOnDisk="10000000"
diskPersistent="true"
diskExpiryThreadIntervalSeconds="1200"
memoryStoreEvictionPolicy="LRU"/>
問題は、結果がキャッシュされないことです。
デプロイ時に、airport.dataは通常どおり作成されますが、Webアプリからメソッドを何度呼び出しても、常に空になります。
何か提案はありますか?