Spring 3 Forms + ModelAttribute + Detected Entity - PullRequest
0 голосов
/ 16 июля 2010

При сохранении сущности с использованием Spring Forms и Hibernate я использую следующий метод контроллера (упрощенно), чтобы сделать это.

@Transactional
@RequestMapping(value="/speichern", method = RequestMethod.POST)
public void saveEvent(final @ModelAttribute("__eventData") MDKEvent p_event) {
     em.persist(p_event);
} // saveEvent

Когда я пытаюсь отредактировать его тем же методом, я получаю «обнаруженную сущность«исключение:

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.

1 Ответ

1 голос
/ 16 июля 2010

em.merge(p_event) будет работать. Я получил другую ошибку и не увидел, что это в основном то, что я ищу.

...