title: How to customize Hibernate EnVers
body: <p>We're designing our entity audit library with two specific requirements: one table per entity and increamental logs (JSON diff) not (full snapshots).</p>
  
  <p>I know only about Hibernate EnVers and JaVers for entity auditing. (If there's anything else please let me know.) and none of them satisfies our requirments.</p>
  
  <p>We already know what audit records look like, and we'd like to re-use as much as possible while implementing the library. I'm thinking of adding Hibernate EnVers as dependency and customizing/extending it to support our needs.</p>
  
  <p>First question is, considering our needs and our platform (we use Spring+JPA+Hibernate), is there any stronge argument to go with JaVers rather than Hibernate EnVers?</p>
  
  <p>Assuming that the answer to the first question is no and we're going to use Hibernate EnVers, to what extend Hibernate EnVers is extensible? And also, apart from some super simple examples, I couldn't find any resources on how to exactly do it. Is there any? Where can I start?</p>
  
  <p>Our design would be more or less as follow:</p>
  
  <pre><code>Entity Table
  Employees (EmployeeId, FirstName, LastName, DepartmentId, ...)
  
  Audit Table
  Employees_AUD (EmployeeId, Diff, REV, REVTYPE)
  -- EmployeeId: employee ID
  -- Diff: diff of the two states of entity
  -- REV: revision id (Hinbernate EnVers)
  -- REVTYPE: revision type (Hinbernate EnVers)
  
  REVINFO Table:
  -- Original table created by Hibernate EnVers
  </code></pre>
  
  <p>Thanks.</p>