MYSQLデータベースとSwingアプリケーションフレームワークおよびjavax.persistenceを使用して、かなり大きなCRUDアプリケーションを開発しました。私の質問は、javax.persistence.Entitymanagerを指定して、トランザクションをどのように最適に管理する必要があるかということです。現在、Applicationクラスによって保持されているエンティティマネージャーのインスタンスが1つあります。それはすべての要求ページに渡され、次にそれを使用してエンティティを永続化およびマージします。アプリケーションの起動時にトランザクションを開始し、変更が加えられるたびにコミット(および再起動)します。これは正しいです?または、コンポーネント/ページごとに個別のエンティティマネージャーを保持する必要がありますか?いつコミットする必要がありますか?最近、次のタイプの例外が発生し始めたため、これらすべての質問が発生しました。java.sql.SQLException:ロック待機タイムアウトを超えました。トランザクションを再開してみてくださいエラーコード:
あなたが私に与えることができるどんな助けにも前もって感謝します!