こんにちは、問題が発生しています。私の (推測している) 永続化レイヤーが結果をキャッシュしているため、アプリケーションの外部からデータベースを更新すると、データが古いままになります。
ただし、半分の時間しかキャッシュしていません。これが理にかなっていることを願っています。
クラスがあります
@Entity
@Table(name = "PROVINCE")
public class Province implements Serializable {
@Id
@GeneratedValue
int id;
String provinceName;
String provinceMoto;
Buildings buildings;
Units units;
Person person;
.... etc
これで、'provincename' などのクラス オブジェクトへの参照ではないデータを更新すると、そのデータはアプリケーションで問題なく、すぐに更新されます。ただし、「建物」などの内部オブジェクトはそうではなく、アプリを再デプロイするなどのハード リフレッシュを行うと、データが新鮮になります。
私はここのデータベースから私の州を取得します:
Query query = manager.createQuery("select p from Province p where p.person = :query");
query.setHint("toplink.refresh", "true");
query.setParameter("query", p);
province = (Province) query.getSingleResult();
では、そのクラスの内部オブジェクト、つまり「建物」「人」も更新するように強制するにはどうすればよいでしょうか。
私の永続層はトップリンクの必需品であり、データが更新されないという以前の問題を修正しました。そして、その最初の投稿はこちらです(別のスタックオーバーフローページです)
助けてくれてありがとう。私の問題を十分に説明したことを願っています
[編集: このフレームワークを使用していない場合と同様に、データベース内のテーブルを結合して新しい変数にデータを再入力する方が簡単ですが、そうではありません]