2017-03-08 9 views
1

の2つのインスタンスを使用しているエンティティを削除しますが、私はこの例外を取得:私は、エンティティを削除しようとしていますEntityManger

java.lang.IllegalArgumentException: Removing a detached instance

が、私は私の問題は、私は二つの異なるEntityMangerインスタンスを使用していますということであることを理解しています。私は解決策のために外を見たが、私は見つかったすべてのソリューションは、このようなものだった:

entityManger.remove(entityManger.merge(entity)); 

代わりにマージし、機能を削除する使用して、この問題を解決するための別の方法はありますか?

答えて

2

例外は、エンティティが永続コンテキストで管理されていないと言います。管理されていないエンティティは削除できません。あなたは使用できます

Entity entity = entityManager.getReference(Entity.class, id); 
entityManager.remove(entity); 

怠け者のインスタンスを取得した方が良いです。 私の英語のため申し訳ありません)

+0

これは私の例外をスローしませんが、おそらく私は1つのEntityManagerでgetReferenceを実行していて他のEntityManagerで削除しているため、私のエンティティを削除しませんでした。 – Sagie

+0

私はそれが可能な方法はわかりません)しかし、削除したいエンティティを管理するEntityManagerを使用してください。そしてなぜ2つのEntityManagerを持っていますか?あなたは2つのDataBase? –

+0

あるクラスでは、削除したいエンティティ(First EntityManger)が見つかります。そのクラス呼び出しは他のクラスに呼び出され、オブジェクト(第2のEntityManger)が取り除かれます。 – Sagie

関連する問題