Criação de historico no banco de dados em Hibernate (Boas praticas)

Ola pessoal,

Gostaria de discutir nesse topico sobre a criação de historico referente a esse topico postado como resposta no site Stackoverflow: http://stackoverflow.com/questions/39281/database-design-for-revisions/17002243#17002243

A discução é para eu tentar resolver o meu problema.

Meu problema é apresentado da seguinte forma :

(Classe e sua ligação; * representa “muitos”

Projeto->*Tarefas
Tarefa->*Atividades
Atividade->*Fases

Para gerenciar cada objeto Projeto, criei o ProjetoMediador, que é composto :

ProjetoMediador->Projeto
ProjetoMediador->*Tarefas (ligados ao projeto)
ProjetoMediador->*Atividades (ligados ao projeto)
ProjetoMediador->*Fases (ligados ao projeto)

Para cada alteração, seja em Tarefas, Atividades ou Fases, devo guardar os valores dos objetos antes de mudar de valores.

Portanto pensei em criar uma classe ProjetoMediadorHistorico, gostaria de saber como que seria as boas maneiras usando Hibernate de criação de historico de acordo com o topico do stackoverflow, que creio que é a melhor maneira.

Muito obrigado !