Hibernateで Transaction already active (java.lang.IllegalStateException) エラーの解決策

プログラミング
スポンサーリンク

Hibernateを使っていて

java.lang.IllegalStateException:Transaction already active

というエラーが出てしまった。

スポンサーリンク

Transaction already active とは

Transaction already active とは、文字通り、トランザクションがすでにオープンしているってことですね。

 

 

Transaction already activeの解決策

1つのトランザクションをオープンして、クローズせずに、あらたなトランザクションをオープンしようとするとこのようなメッセージが出ます。

https://stackoverflow.com/questions/50874231/hibernate-two-or-more-transactions-at-the-same-time-transaction-already-active

 

よく分からない場合は、

transactionがActiveであれば、roolbackするようにします。

 

以下のサイトにも解説があります。

https://stackoverflow.com/questions/41060548/why-jpa-hibernate-transaction-is-active-even-when-i-did-not-start-one-explicitly

 

The problem is that when you call entityManager.getTransaction(); a new transaction object will be created. So it is better to save the transaction reference to a variable as shown below.

 

 

コメント