openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrew Thompson <at2...@columbia.edu>
Subject Re: Audit log with OpenJPA
Date Thu, 07 Jul 2011 15:15:47 GMT
You might take a look at how hades
(http://hades.synyx.org/static/2.x/site/org.synyx.hades/reference/html/auditing.html) does
something close to what you're describing.  Or http://www.jboss.org/envers

-Andy

On Thu, 2011-07-07 at 15:35 +0100, David Goodenough wrote: 
> On Thursday 07 Jul 2011, Bengt Rodehav wrote:
> > 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
> You could of course cheat.
> 
> While you can not access the entiry manager, there is nothing to stop you
> using JDBC.  It would probably not be a good idea to access a table that
> JPA is using, but if this audit trail is write only for this app and only
> read elsewhere that would solve the problem.
> 
> David


Mime
View raw message