Mybatis Generator: Jaki jest najlepszy sposób na oddzielenie „generowanych automatycznie” i „ręcznie edytowanych plików”

Jestem w projekcie, który używa obuMybatis (dla utrzymywania Java w bazie danych) iMybatis Generator (aby automatycznie wygenerować pliki xml mappera i interfejsy java ze schematu bazy danych).

Generator Mybatis dobrze wykonuje generowanie plików niezbędnych do podstawowej operacji crud.

Kontekst

W przypadku niektórych tabel / klas będziemy potrzebować więcej „rzeczy” (kwerend kodu, itp.) Niż „crud stuff” generowanych przez narzędzie MyBatis Generator.

Czy jest jakiś sposób na posiadanie „najlepszego z obu światów”, to znaczy zarówno automatycznego generowania, jak i „kodu niestandardowego”. Jak oddzielić i uporządkować „pliki edytowane ręcznie” i „pliki generowane automatycznie”.

Wniosek

Myślałem o następujących kwestiach, tj. O tabeli „Foo”

Automatyczne generowanie

FooCrudMapper.xmlinterfejs FooCrud.java

(gdzie „Crud” oznacza „Utwórz odczyt aktualizacji Usuń”)

Ręcznie edytowane

FooMapper.xmlinterfejs Foo rozszerza FooCrud

Pojęcie: jeśli zmienił się schemat, zawsze można bezpiecznie wygenerować pliki xml i .java „Crud” bez wymazywania jakichkolwiek zmian niestandardowych.

pytania

Czy mybatis poprawnie obsłuży ten scenariusz, tzn. Czy ten program odwzorowujący poprawnie wykona automatycznie wygenerowany „kod crud”?

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

Jakie podejście polecasz?

Edytuj 1: * Nasz projekt bazy danych używa „tabeli podstawowej” („element”) z innymi tabelami „rozszerzającymi” tę tabelę i dodającymi dodatkowe atrybuty (klucz wspólny). Sprawdziłem dokumenty i źródło doszedłem do wniosku, że nie mogę używać Mybatis Generatora w połączeniu z takim „rozszerzeniem” bez ręcznej edycji:

tj. to nie działa. -ElementMapper rozszerza „ElementCrudMapper” -FooMapper.xml rozszerza zarówno „ElementCrudMapper”, jak i „FooCrudMapper”

Dziękuje wszystkim!

questionAnswers(4)

yourAnswerToTheQuestion