Mybatis Generator: Qual é a melhor maneira de separar “arquivos gerados automaticamente” e “arquivos editados manualmente”
Eu estou em um projeto que usa tantoMybatis (para persistir java no banco de dados) eGerador Mybatis (para gerar automaticamente os arquivos xml do mapeador e as interfaces java a partir de um esquema de banco de dados).
O gerador Mybatis faz um bom trabalho gerando os arquivos necessários para a operação básica do crud.
Contexto
Para algumas das tabelas / classes, precisaremos de mais "coisas" (consultas de código, etc) do que o "material bruto" gerado pela ferramenta Gerador de MyBatis.
Existe alguma maneira de ter "o melhor dos dois mundos", ou seja, usar geração automática, bem como "código personalizado". Como você separa e estrutura os "arquivos editados à mão" e "arquivos gerados automaticamente".
Proposta
Eu estava pensando sobre o seguinte, ou seja, para a mesa "Foo"
Gerado automaticamente
FooCrudMapper.xmlinterface FooCrud.java(onde "Crud" significa "Create Read Update Delete")
Mão editada
FooMapper.xmlinterface Foo estende FooCrudA noção: se o esquema for alterado, você poderá sempre autogerar com segurança os arquivos xml e .java "Crud" sem eliminar nenhuma alteração personalizada.
Questões
O mybatis leria corretamente este cenário, ou seja, esse mapeador executaria corretamente o 'código crud' gerado automaticamente?
FooMapper fooMapper = sqlSession.getMapper (FooMapper.class);
Qual abordagem você recomenda?
Edit 1: * Nosso projeto de db usa uma 'tabela principal' ("elemento") com outras tabelas 'estendendo' essa tabela e adicionando atributos extras (chave compartilhada). Eu olhei para docs e a fonte concluiu que eu não posso usar o Mybatis Generator em conjunto com tal 'extensão' sem qualquer edição manual:
ou seja, isso não funciona. -ElementMapper estende "ElementCrudMapper" -FooMapper.xml estende tanto "ElementCrudMapper" e "FooCrudMapper"
Obrigado a todos!