I'm using OpenJPA for persistence and would like to audit log any changes
made to my entities. I serialize the objects to JSON (with Gson) and store
them in a separate table in the database. Since the audit log needs to have
the correct id's, the audit logging must take place after the entity has
been persisted.

I was hoping I could use the @PostPersist and @PostUpdate life cycle
callbacks for this. I do seem to have the right information available and
the serialization works fine but I don't know how I can persist my audit log
entries at this point. From what I've read, I'm not allowed to use the
entity manager in a "Post" lifecycle callback which of course makes this
hard.

What do you recommend? Is there a good place in JPA/OpenJPA where I
automatically can trigger the storing of an audit log entry as described
above. Of course I can move this logic up from the persistence layer to a
place where I can first have the entity manager persist my entity and then
explicitly call another service to do the audit log. However, this is a
pretty general mechanism that I would like to have automatic support for in
my framework which is why I would like to have it pushed down into the
persistence layer.

Any ideas?

/Bengt

Reply via email to