私はflush()メソッドに関する情報を収集していましたが、それをいつ使用し、どのように正しく使用するかについては明確ではありません。私が読んだことから、私の理解は、永続化コンテキストの内容がデータベースと同期される、つまり、未解決のステートメントを発行したりエンティティデータを更新したりすることです。
今、私は2つのエンティティAとB(1対1の関係で、JPAによって強制またはモデル化されていない)以下のシナリオを取得しました。A手動で設定される複合PKがあり、自動生成されたIDENTITYフィールドもありますrecordId。これrecordIdはへBの外部キーとしてエンティティに書き込む必要がありますA。私は、1つのトランザクションで保存AしBています。問題は、自動生成された値があることをA.recordId、私はの明示的な呼び出しを行う場合を除き、トランザクション内では使用できませんem.flush()呼び出した後em.persist()にA。(自動生成されたIDENTITY PKがある場合、値はエンティティで直接更新されますが、ここではそうではありません。)
em.flush()トランザクション内で使用すると害が生じる可能性がありますか?