データベースからデータを取得して表示するWebアプリケーションがあります。今私が抱えている問題は、毎時データベースのデータを更新したいということです。これは別のアプリで行われますが、これはすべて正常に動作します。ただし、これが発生してユーザーがWebページを更新すると、新しいデータは表示されません。データベースから新しいデータでアプリケーションを更新する際の問題
これは意味があると思います。
私はアプリからいくつかのコードを提供して、より良く見えるようにします。
私のウェブアプリケーションはjavaを使用してnetbeansで書かれており、データベースのテーブルにクラスをマッピングするパーシスタンスユニットがあります。私は自分のコンポーネントを自分のhtmlに追加するためにwicketを使用しています。
// Javaの自動改札コード設定がDBからオブジェクトを取得し、Javaの自動改札コードに返す
ApplicationSettings apset = new ApplicationSettingsDAO().getApplicationSettings();
this.add(new Label("lblGameTime", "" + apset.getGameTimeDays()));
//自動改札HTMLコード
Date : day <span wicket:id="lblGameTime">generated date</span>
// DAOアプリケーション設定上記
public ApplicationSettings getApplicationSettings() {
ApplicationSettings settings;
try {
Query q = manager.createQuery("select s from ApplicationSettings s where s.setting = :setting");
q.setParameter("setting", "setting");
settings = (ApplicationSettings) q.getSingleResult();
} catch (NoResultException e) {
ApplicationSettings newSetting = new ApplicationSettings();
return newSetting;
}
return settings;
}
// ApplicationSettingsは単なるクラスです。
//毎時コードが動作し、ユーザーが再びページをロードするとき今、私はページが得られるようなgameTimeDaysが正しいだろうと
Query query6 = manager.createQuery("select s from ApplicationSettings s where s.setting = :setting");
query6.setParameter("setting", "setting");
ApplicationSettings apset = (ApplicationSettings) query6.getSingleResult();
apset.setGameTimeDays(apset.getGameTimeDays() + 1);
save(apset);
デシベルの更新を期待するん別のアプリで走りました上記のウィークネットコードを呼び出していたため、再度dbからのデータしかし値は変わらない。ページに表示される値は、更新前の古い失効値です。何回更新が行われても、この値は古い値です。ただし、Tomcatサーバーで再デプロイまたはモジュールを再起動すると、その時点の値が正しいことになります。
私は何が不足していますか、これは答えが私を暗示していると思われる小さな問題です。
値は、サーバーが再デプロイされるまで、または何かがメモリに格納されているように見えます。私はこれについて知っているJavaの内部の動作についてたくさん知っていません。
[OK]私は私のジレンマで私を助けるために十分な情報を誰かに提供したいと思います。
ありがとうございました。
EDIT:永続性ライブラリはTopLinkのEssentialsは
「は、ユーザが再びページをロードする」そのページのリロードまたは新規ユーザー(新しいセッション)ということでしょうか?ブラウザを閉じてそのページを再度開いてみてください。新しい値が表示されます。 – bert
@bertこれはリロードです。リンクをクリックすると別のページが開き、このコンポーネントもまた古い値を保持します。何かが私が推測しているどこかにキャッシュされています。ちょうどブラウザを閉じてみました。変化なし。 – David