0

A には、B と多対 1 の双方向関係があります。A にはカスケード マージ & デタッチがあります。A は所有エンティティです。

  1. A は管理され、B は分離されています。自動コミット- 機能しませんでした。トランザクションがコミットされた後、どの As も更新されませんでした
  2. B がデタッチされている間に A がデタッチおよびマージされる - 原因となる楽観的ロック例外
  3. B がまだ管理されている間に、A が切り離されてマージされます - 機能しませんでした。412 As を更新してみました。412 のうち 395 だけが更新されました (奇妙な!)。B を初めてロードする原因となる A が更新されていないことが確認されています。
  4. A が管理され、B が管理されます。自動コミット - 働いた

    • managed - em.detach() や em.merge() への明示的な呼び出しはありません
    • 切り離された - em.detach()
    • マージ済み - em.merge()
    • 切り離された - em.detach()
    • 自動コミット - em.merge() を呼び出さない

関係は両側で更新されました。

最初の 3 つのケースがわかりませんでした。専門家からの説明に感謝します。

4

0 に答える 0