Mybatis Generator: ¿Cuál es la mejor manera de separar "archivos generados automáticamente" y "editados a mano"?

Estoy en un proyecto que utiliza tantoMybatis (para java persistente a la base de datos) yGenerador Mybatis (para generar automáticamente los archivos xml del asignador y las interfaces Java a partir de un esquema de base de datos).

El generador de Mybatis hace un buen trabajo en la generación de los archivos necesarios para una operación cruda básica.

Contexto

Para algunas de las tablas / clases, necesitaremos más "cosas" (consultas de código, etc.) que las "cosas crudas" generadas por la herramienta MyBatis Generator.

¿Hay alguna forma de tener "lo mejor de ambos mundos", es decir, usar la generación automática así como el "código personalizado"? ¿Cómo separa y estructura los "archivos editados manualmente" y los "archivos generados automáticamente"?

Propuesta

Estaba pensando en lo siguiente, es decir, para la tabla "Foo"

Auto generado

FooCrudMapper.xmlinterfaz FooCrud.java

(donde "Crud" significa "Crear actualización de lectura Eliminar")

Editado a mano

FooMapper.xmlinterfaz Foo extiende FooCrud

La noción: si el esquema cambia, siempre puede autogenerar de forma segura los archivos XML y .java "Crud" sin eliminar ninguno de los cambios personalizados.

Preguntas

Mybatis manejaría correctamente este escenario, es decir, ¿este mapeador ejecutaría correctamente el 'código crud' generado automáticamente?

FooMapper fooMapper = sqlSession.getMapper (FooMapper.class);

¿Qué enfoque me recomienda?

Edición 1: * Nuestro diseño de db utiliza una 'tabla principal' ("elemento") con otras tablas 'extendiendo' esa tabla y agregando atributos adicionales (clave compartida). He examinado documentos y la fuente llegó a la conclusión de que no puedo usar Mybatis Generator junto con esa "extensión" sin una edición manual:

es decir, esto no funciona. -ElementMapper extiende "ElementCrudMapper" -FooMapper.xml extiende tanto "ElementCrudMapper" como "FooCrudMapper"

¡gracias a todos!

Respuestas a la pregunta(4)

Su respuesta a la pregunta