What's going on here?
@Stateless
@LocalBean
public class AppointmentCommentDao {
public void delete(long appointmentCommentId) {
AppointmentComment ac = em.find(AppointmentComment.class, appointmentCommentId);
if (ac != null)
{
em.merge(ac);
em.remove(ac);
}
}
@PersistenceContext
private EntityManager em;
}
On the call to remove
I get an IllegalArgumentException
with the message being Entity must be managed to call remove: ...., try merging the detached and try the remove again.
In your case merge is not needed, because ac is not deattached in any point between em.find and em.remove.
In general when entity is deattached, EntityManager's method merge takes entity as argument and returns managed instance. Entity given as argument does not transform to be attached. This is explained for example here: EntityManager.merge. You have to go for:
AppointmentComment toBeRemoved = em.merge(ac);
em.remove(toBeRemoved);