При сохранении объекта с использованием Spring Forms и Hibernate я использую для этого следующий метод контроллера (упрощенный).
@Transactional
@RequestMapping(value="/speichern", method = RequestMethod.POST)
public void saveEvent(final @ModelAttribute("__eventData") MDKEvent p_event) {
em.persist(p_event);
} // saveEvent
Когда я пытаюсь отредактировать его, используя тот же метод, я получаю исключение «deteched entity»:
javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist: some.package.Entity
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1235)
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1168)
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1174)
...
Похоже, что объект находится в неуправляемом состоянии после отправки формы (что имеет смысл). Как я могу сохранить обновленный объект в любом случае? Каков правильный способ сделать это?
Я использую Spring 3 и Hibernate 3.5.