I have a Data Class for Hibernate associated to a table; imagine the Entity Person like this:
@Entity @org.hibernate.annotations.Proxy(lazy=false)
You should try Hibernate Envers for historic data.