#java #mybatis #mybatis-generator
#java #mybatis #mybatis-генератор
Вопрос:
Я использую MyBatis Generator для генерации JavaBean и Mapper.xml .
Но Mapper.xml отличается от того, что я ожидал.
Mapper.xml содержит две результирующие карты, BaseResultMap
и ResultMapWithBLOBs
.
Я хочу, чтобы только одна результирующая карта содержала все столбцы.
Комментарии:
1. Вы уверены, что ResultMapWithBLOBs не расширяет базовую результирующую карту?
2. ResultMapWithBLOBs расширяет базовую результирующую карту. Но мне просто нужна одна результирующая карта, которая содержит все столбцы, возможно ли это?
Ответ №1:
Сложно понять, как настроена конфигурация вашего генератора mybatis, но способ сделать это — настроить тип модели контекста.
MBG предоставляет перечисление под названием ModelType, которое позволяет вам управлять тем, как генерируются классы модели Java (ваши компоненты). Вы хотите использовать ModelType.FLAT
в своей конфигурации контекста, чтобы избежать создания каких-либо дополнительных классов bean.
Ответ №2:
Один из вариантов избежать создания подклассов «WithBlobs» — указать <columnOverride/>
использовать типы jdbc, отличные от больших двоичных объектов, в конфигурации вашего генератора для столбцов больших двоичных объектов.
Итак, в примере с TEXT
столбцом с именем «bar» в вашей таблице вы можете указать VARCHAR
вместо:
<table tableName='foo' domainObjectName='Foo'>
<property name='useActualColumnNames' value='true' />
<columnOverride column="bar" property="bar" jdbcType="VARCHAR" />
</table>