Одиночная результирующая карта генератора MyBatis

#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>