Lors de l'enregistrement d'une entité à l'aide de Spring Forms et d'Hibernate, j'utilise la méthode de contrôleur suivante (simplifiée) pour ce faire.Spring 3 Forms + Entité ModelAttribute + Deteched
@Transactional
@RequestMapping(value="/speichern", method = RequestMethod.POST)
public void saveEvent(final @ModelAttribute("__eventData") MDKEvent p_event) {
em.persist(p_event);
} // saveEvent
Lorsque je tente de le modifier en utilisant la même méthode que je reçois une « entité deteched » exception:
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)
...
Il coutures que l'entité est dans un état non géré après avoir soumis la forme (ce qui est logique). Comment pourrais-je sauvegarder l'entité mise à jour de toute façon? Quelle est la bonne façon de faire cela? J'ai utilisé Spring 3 et Hibernate 3.5.