Я участвую в проекте, который использует как Mybatis (для сохранения java для базы данных), так и Mybatis Generator (для автоматического создания XML файлов mapper и java-интерфейсов из схемы базы данных).
Генератор Mybatis отлично справляется с созданием файлов, необходимых для базовой операции crud.
Контекст
Для некоторых из таблиц/классов, нам потребуется больше "материал" (код запросов и т.д.), чем "сырого материала", порожденного инструментом MyBatis генератора.
Есть ли способ, чтобы "лучшее из обоих миров", то есть использовать автоматическое поколение, как и "пользовательский код". Как вы выделяете и структурируете "отредактированные вручную файлы" и "автоматически сгенерированные файлы".
Предложение
Я думал о следующем, т.е. для таблицы "Foo"
автоматически
- FooCrudMapper.xml
- интерфейс FooCrud.java
(где "Crud" означает "Create Read Update Delete" )
Отредактировано вручную
- FooMapper.xml Интерфейс
- Foo расширяет FooCrud
Понятие: если схема была изменена, вы всегда могли бы автоматически генерировать файлы "Crud" xml и .java, не удаляя любые пользовательские изменения.
Вопросы
-
Будет ли mybatis корректно обрабатывать этот сценарий, т.е. правильно ли этот картограф выполнит автоматически сгенерированный "crud code"?
FooMapper fooMapper = sqlSession.getMapper(FooMapper.class);
-
Какой подход вы рекомендуете?
Изменить 1: * Наш проект db использует "основную таблицу" ( "элемент" ), а другие таблицы "расширяют" эту таблицу и добавляют дополнительные атрибуты (общий ключ). Я просмотрел документы и источник пришел к выводу, что я не могу использовать Mybatis Generator в сочетании с таким расширением без редактирования вручную:
то есть. Это не работает. -ElementMapper расширяет "ElementCrudMapper" -FooMapper.xml расширяет и "ElementCrudMapper" и "FooCrudMapper"
спасибо всем!