JPA (transaction-type="JTA") を使用する Java EE プロジェクトがあり、プロバイダーとして休止状態になっています。CRUD を処理するために自分の Bean を作成します。JBOSS 7 AS で実行されるプログラム。
私は EntityManagerDAO を持っています:
@Stateful
public class EntityManagerDao implements Serializable {
@PersistenceContext(unitName = "dtdJpa")
private EntityManager entityManager;
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public Object updateObject(Object object) {
object = entityManager.merge(object);
return object;
}
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public void createObject(Object object) {
entityManager.persist(object);
}
public void refresh(Object object) {
entityManager.refresh(object);
}
public <T> T find(Class<T> clazz, Long id) {
return entityManager.find(clazz, id);
}
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public void deleteObject(Object object) {
entityManager.remove(object);
}
}
しかし、私が呼び出すdeleteObject
と、この例外が出てきます。
java.lang.IllegalArgumentException: デタッチされたインスタンスを削除しています com.test.User#5
これはどのように発生し、どうすれば解決できますか?