J'ai implémenté un DescriptorEventAdapter pour JPA (eclipselink). Il effectue des opérations d'horodatage simples. La méthode preUpdate est appelée, mais elle est appelée trop souvent. Il est appelé et met à jour l'horodatage, même sur les opérations de recherche/sélection.JPA PreUpdate implémenté à l'aide de DescriptorEventAdapter appelé après find/select
Le problème que je rencontre semble se produire dans une autre structure JPA également, http://markmail.org/message/nank44rgp4xi2ita#query:JPA%20preupdate%20being%20called%20after%20find+page:1+mid:xssqpg7hm4mesfl5+state:results.
J'ai essayé de:
- vérifier la ChangeSet sur la DescriptorEvent, ce qui est toujours chèque nul
- le code sur le DescriptorEvent, ce qui est toujours 6
Je n'a pas été en mesure de trouver un autre drapeau ou attribut qui dit "cet objet a vraiment été mis à jour".
Comment obtenir preUpdate pour agir uniquement lorsqu'un enregistrement a été réellement mis à jour et non simplement sélectionné?
Vous avez également essayé d'utiliser UnitOfWork via event.getSession(). Cela provoque un StackOverflowError lorsque le serveur démarre. – Freiheit