Computer Science/Web Programming
[JPA] java.lang.IllegalArgumentException: Removing a detached instance
⛅
2021. 2. 9. 13:03
Problem
public void delete(Object entity) {
EntityManager entityManager = entityManagerFactory.createEntityManager();
Session session = entityManager.unwrap(Session.class);
session.delete(entity);
session.flush();
entityManager.close();
}
위 코드를 이용하여 entity를 제거하려고 했더니 detached instance를 제거하려 했다고 Exception을 throw했다.
Solution
public void delete(Object entity) {
EntityManager entityManager = entityManagerFactory.createEntityManager();
Session session = entityManager.unwrap(Session.class);
//session.delete(entity);
session.delete(entityManager.contains(entity) ? entity : entityManager.merge(entity));
session.flush();
entityManager.close();
}
위와 같이 수정하면 문제가 해결된다.
Reference
728x90
반응형