JPA を使用しています (JPA プロバイダーとして Hibernate を使用)。エンティティを削除する操作があり、エンティティをデタッチしてすぐにマージすると、例外がスローされるようです。
em.find(entity.class, entitiy.getId())
em.detach(entity)
em.merge(entity)
単純にエラーが発生します
em.find(entity.class, entitiy.getId())
無事通過します。デタッチとマージに関して欠けているものはありますか? エンティティ自体には何もしませんでした。それは変更されていないため、マージによって何も変更されないはずです。
必要に応じて、特定のケースについて詳しく説明できます。
編集
@rmertins が指摘したように、マージからの戻り値を使用する必要がありました。パラメーターとして使用したエンティティは切り離されたまま、マージはマージ エンティティを返すためです。これは機能します:
em.find(entity.class, entitiy.getId())
em.detach(entity)
entity = em.merge(entity)