Pergunta

Atualmente, estou usando o Hibernate Tools 3.1;Eu personalizados convenção de nomenclatura e DAO modelos.O banco de dados (SQL Server 2005), na fase de desenvolvimento inicial, e eu estou encarregado de reconstruir os mapeamentos, as entidades, os DAOs, configuração, qualquer que seja.Cada vez que eu tenho a engenharia reversa de tabelas e então eu perder toda a personalização que eu fiz sobre os mapeamentos (*.hbm.xml de arquivos), como ajustar o identidade colunas, escolhendo os campos utilizados no é igual a e toString.Eu estava pensando em escrever o diff para XML em um arquivo e o "mala" que para o mapeamento gerado (ver a minha questão relacionada com a mas eu estava me perguntando...existe alguma melhor prática ferramenta para lidar com esses irritantes, inevitável, tarefas críticas?

Foi útil?

Solução

Eu recomendaria fortemente contra contínua de engenharia reversa.A engenharia reversa é um grande acontecimento, mas as mudanças precisam ser gerenciados como alterações em ambos os mcs e o banco de dados.

Nós usamos as migrações para gerenciar db alterações, e que incluem as mudanças associadas na hbm.Se o Hibernate tem ele (acredito que não), você pode querer olhar para anotações em vez de uma mcs, eles podem ser um pouco mais fácil de manter.

Outras dicas

Este é de dois anos e meio tarde, mas eu vou dar uma opinião divergente.Você deve ser capaz de fazer qualquer customização que você precisa para o mapeamento de arquivos o hibernate.reveng.xml arquivo ou um personalizado ReverseEngineeringStrategy.Para as classes em si, você deve sempre gerar a classes base e estendê-las com as classes que contêm código personalizado.

Por exemplo, gerar com.empresa.vo.gerado.CustomerGenerated e estendê-lo com.empresa.vo.personalizado.O cliente.Geração de código deve substituir todas as classes no pacote gerado, mas nunca no pacote personalizado (embora você possa ter o Hibernate Tools gerar essas classes no diretório de destino, de modo que você pode copiar e colar espaços em branco no diretório personalizado conforme necessário).Desta forma, você pode substituir os métodos para igual, toString, etc., em que as classes personalizadas e não perder as alterações quando você se regenerar.Observe também que a melhor prática é não verificar no código gerado em SCM.

Há alguns bons exemplos no site de como conseguir isso usando o Maven, o Hibernate3 plugin, e a compilação de auxiliar de plugin.A maioria destes tem muito útil respostas por Pascal Thivent.Este método está funcionando muito bem para mim, e enquanto houver um pouco de uma curva de aprendizado é uma coisa maravilhosa para ser capaz de propagar alterações de banco de dados para o aplicativo com um único comando Maven.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top