Já criei classes inteiras dinamicamente, os metadados(ou dados que descreviam as classes) estavam em um banco de dados. Ao rodar a aplicação eu lia o banco de dados e criava as classes. Além disso criava mapeamentos em XML e enviava para o Hibernate para gerar uma base de dados baseada nestas classes. :shock: