Mybatis Generator: Was ist der beste Weg, um "automatisch generierte" und "handbearbeitete Dateien" zu trennen?

Ich arbeite an einem Projekt, das beides nutztMybatis (um Java in der Datenbank zu speichern) undMybatis Generator (um die Mapper-XML-Dateien und Java-Schnittstellen automatisch aus einem Datenbankschema zu generieren).

Der Mybatis-Generator leistet gute Arbeit beim Generieren der Dateien, die für den grundlegenden Rohölbetrieb erforderlich sind.

Kontext

Für einige der Tabellen / Klassen benötigen wir mehr "Zeug" (Code-Abfragen usw.) als das vom MyBatis Generator-Tool generierte "Rohzeug".

Gibt es eine Möglichkeit, "das Beste aus beiden Welten" zu haben, d. H. Die automatische Generierung sowie "benutzerdefinierten Code" zu verwenden? Wie trennt und strukturiert man die "handbearbeiteten Dateien" und "automatisch erzeugten Dateien"?

Vorschlag

Ich habe über Folgendes nachgedacht, d. H. Für Tabelle "Foo"

Automatisch generiert

FooCrudMapper.xmlSchnittstelle FooCrud.java

(wobei "Crud" für "Create Read Update Delete" steht)

Hand bearbeitet

FooMapper.xmlSchnittstelle Foo erweitert FooCrud

Der Gedanke: Wenn sich das Schema ändert, können Sie die XML- und Java-Dateien "Crud" immer sicher automatisch generieren, ohne die benutzerdefinierten Änderungen zu löschen.

Fragen

Würde mybatis dieses Szenario korrekt handhaben, d. H. Würde dieser Mapper den automatisch generierten "Rohcode" korrekt ausführen?

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

Welchen Ansatz empfehlen Sie?

Edit 1: * Unser DB-Design verwendet eine "Kerntabelle" ("Element"), wobei andere Tabellen diese Tabelle "erweitern" und zusätzliche Attribute hinzufügen (gemeinsamer Schlüssel). Ich habe mir die Dokumente angesehen und die Quelle festgestellt, dass ich Mybatis Generator nicht in Verbindung mit einer solchen 'Erweiterung' verwenden kann, ohne sie von Hand zu bearbeiten:

das funktioniert nicht. -ElementMapper erweitert "ElementCrudMapper" -FooMapper.xml erweitert sowohl "ElementCrudMapper" als auch "FooCrudMapper"

Vielen Dank an alle!