Mapear Banco de Dados em Modo Execução

Boa tarde,

Alguém sabe como posso mapear as tableas de um banco de dados com Hibernate ou qualquer outra ferramento com o programa em execução. Resumindo, quero mostrar ao usuário as tabelas do banco, ele seleciona a tabela deseada, e o programa mostra os campos, o usuário seleciona os campos desejados e o programa mapeia a tabela e cria uma classe para persisti-la. Tudo isso em modo de execução.

Obrigado.

Abraços.