JPAの仕組みを理解しようとしています。私が知っていることから、エンティティを永続化すると、そのオブジェクトはアプリケーションが閉じられるまでメモリに残ります。つまり、以前に保持されたエンティティを検索すると、データベースに対してクエリが実行されません。挿入、更新、または削除が行われないと仮定すると、アプリケーションの実行時間が十分に長い場合、その中のすべての情報が永続的になる可能性があります。これは、ある時点でデータベースがもう必要なくなるということですか?エンティティはどれくらい時間をかけていますか?
編集
私の問題は、データベースとではありません。私は、アプリケーションの外部からデータベースを変更できないと確信しています。私は自分でトランザクションを管理しているので、データはコミットするとすぐにデータベースに格納されます。私の質問は、私がコミットした後、エンティティはどうなりますか?彼らは記憶に残っていて、キャッシュのように働いていますか?もしそうなら、彼らはそこにどれくらい長く保管されていますか? persist
をコミットした後、select
というクエリを作成します。この選択は、前に永続化したオブジェクトを返す必要があります。そのオブジェクトはメモリから取り込まれるのだろうか、あるいはアプリケーションがデータベースに問い合わせるだろうか?
私はデータベースを削除するつもりはありませんでした。私は_after_ aがすべてのエンティティをメモリに残し、キャッシュのように動作するかどうかを理解しようとしています。私は非常に頻繁にいくつかの情報が必要です。だから私は毎回データベースに照会したくないのです。リストはアプリケーション自体に冗長性を作成しますか? – Dragos
毎回クエリを作成したくない場合は、L2キャッシュとオプションでクエリキャッシュを構成できます。まれな状況では、拡張永続コンテキストを利用することもできます。このコンテキストでは、アプリケーションが指定された期間L1キャッシュを開いたままにしますが、これは難しいのでL2を先に試してください。 –