1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/baomidou-mybatis-plus

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
CHANGELOG.md 96 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 08:56 ba54bda

CHANGELOG

[v3.5.9] 2024.10.23

  • Оптимизация кода генератора для поддержки визуальной конфигурации генерации.
  • Развязка расширения пакета, больше не зависит от Spring разработки.
  • Модуль JSQLParser был разделён на несколько модулей: mybatis-plus-jsqlparser (поддерживает последнюю версию JSQLParser) и mybatis-plus-jsqlparser-4.9 (по умолчанию не поставляется, после обновления необходимо самостоятельно импортировать).
  • Рефакторинг модуля Service в абстрактный класс CrudRepository, использование IService для бизнес-слоя данных больше не рекомендуется.
  • Поддержка плагина запуска Solon.
  • Обновление SpringBoot до версии 3.3.4.
  • Обновление Velocity до версии 2.4.

[v3.5.8] 2024.09.18

  • Решение проблемы с обратной последовательностью оптимизации joinOfCountSql.
  • Решение проблемы неточного возврата значения при использовании rewriteBatchedStatements = true в классе инструментов Db.
  • Исправление конфликта между логическим удалением и оптимистичным блокированием.
  • Исправление ошибки анализа IllegalSQLInnerInterceptor для вложенных операторов count.
  • Обновление jsqlParser до версии 5.0 для решения проблемы с оператором for update.
  • Исправление проблемы с анализом jsqlParser при оптимизации ошибок из-за отрицательных чисел.
  • Исправление неполной очистки кэша Mapper.
  • Исправление проблем с кодировкой комментариев таблицы SQL Server Query.
  • Улучшение логики проверки внедрения функций.
  • Изменение доступа к свойствам Page на private и пересмотр метода toString.
  • Выдача предупреждающего сообщения журнала для типов, которые не поддерживают стратегию генерации первичных ключей uuid.
  • Преобразование MybatisPlusException в подкласс PersistenceException.
  • Добавление обработки пустого набора идентификаторов при удалении.
  • Переименование метода selectBatchIds в selectByIds.
  • Поддержка соответствия атрибутов tableName и schema.
  • Генерация кода для получения свойств виртуальных столбцов.
  • Цепочка wrapper к lambda chain wrapper #6314.
  • Генератор кода поддерживает ручную спецификацию драйвера базы данных, который не может автоматически регистрироваться.
  • Обновление Kotlin до версии 2.0.0.
  • Обновление Spring Boot до версии 3.3.2.
  • Обновление fastjson до версии 2.0.52.
  • Обновление mybatis-spring до версии 3.0.4.
  • Обновление spring-cloud-commons до версии 4.1.4.
  • Частичная поддержка обновления зависимостей.
  • Поддержка GoldenDB.
  • Поддержка Duckdb.
  • Поддержка Derby.
  • Поддержка Vastbase.

[v3.5.7] 2024.06.10

  • Исправление обработки динамических таблиц при обновлении ignore.
  • Исправление ошибок пробелов при разбиении на страницы SQL Server 2005.
  • Исправление проблем, возникающих при запросе нескольких арендаторов.
  • Уменьшение принудительного преобразования при сериализации JSON в случае универсальных шаблонов.
  • Исправление неработающих ограничений шаблона генератора кода.
  • Исправление оптимизации count при разбивке на страницы и упорядочивании по ошибке.
  • Исправление генерации кода для базы данных Dameng.
  • Исправление потери эффективности специального оператора exists в плагине арендатора.
  • Исправление sqlite ddl_history, приводящее к невозможности создания таблицы.
  • Исправление DataChangeRecorderInnerInterceptor при вставке и настройке игнорирования.
  • Исправление кода генератора при обработке нестандартных типов JdbcType, вызывающих нулевые указатели.
  • Добавлены методы BatchOperation и InsertOrUpdate в базовый маппер.
  • Возвращаемое значение метода BatchOperation в базовом маппере — List.
  • Методы базового маппера по умолчанию поддерживают логическое удаление и заполнение.
  • Настройка логики заполнения логического удаления в слое сервиса.
  • Реорганизация логики обработки параметров удаления.
  • Обработка BigDecimal для увеличения и уменьшения.
  • Внедрение конфигурации снежинки ID (поддержка ручного распределения workerId и datacenterId или автоматическое получение информации о сетевой карте).
  • Извлечение общих параметров в слой сервиса.
  • Модификация генерации случайных ключей AES.
  • UpdateWrapper добавляет метод checkSqlInjection.
  • Автоматическая настройка DDL (если нет реализации или нет модуля mybatis-plus-extension, не внедряется в bean выполнения DDL).
  • Метод deleteBatchIds переименован в deleteByIds.
  • Spring Boot обновлён до версий 2.7.18 и 3.2.6.
  • Kotlin обновлён до версии 1.9.24.
  • Lombok обновлён до версии 1.18.32.

[v3.5.6] 2024.04.08

  • Исправлено неправильное проксирование общего сервиса, вызывающее ошибки.
  • Исправлена ошибка десериализации типа Json обработчиком типа.
  • Исправлен обработчик типа для основных массивов, вызывающих сильные ошибки.
  • Исправлено сохранение Page в PageDto.
  • Исправлены проблемы с обработкой IllegalSQLInnerInterceptor.
  • Исправлены проблемы с проверкой индекса и индекса поля IllegalSQLInnerInterceptor, когда имена таблиц или полей заключены в кавычки.
  • Исправлена проблема с расширением params при вызове setSql в KtUpdateChainWrapper.
  • Исправлена неработающая конфигурация useGeneratedShortKey.
  • Исправлены ошибки DataChangeRecorderInnerInterceptor.
  • Удалены escape-символы sqlFirst и sqlComment (при необходимости экранирования операции, пожалуйста, вызовите экранирование вручную перед передачей).
  • СервисImpl стал абстрактным классом для предотвращения прямого создания экземпляров.
  • Шаблон конфигурации генератора кода перемещён в конкретную реализацию.
  • Поддерживаются комбинированные аннотации.
  • LambdaUpdateWrapper добавлен для полей самоинкремента setIncrBy и self-decrement setDecrBy.
  • При получении метода внедрения передаётся org.apache.ibatis.session.Configuration.
  • Самоинкрементный первичный ключ поддерживает конфигурацию (mybatis-plus.global-config.db-config.insert-ignore-auto-increment-column по умолчанию false, разрешает INSERT игнорировать генерацию первичного ключа).
  • Добавлен способ пропуска параметра заполнителя (на основе MappedStatement#id).
  • Добавлена поддержка SQLite для автоматического обслуживания DDL.
  • Добавлено eqSql.
  • Добавлен SQL-анализ пула потоков.
  • Добавлена инициализация журнала печати генератора снежинок (более 5 секунд печатается предупреждение журнала).
  • Обновлён mybatis до версии 3.5.16.
  • Обновлены spring-cloud-commons.
  • Обновлено jsqlparser до версии 4.9.
  • Github добавил CI.
  • Документация дополнена комментариями к связанным API, которые нельзя заполнить автоматически.

[v3.5.5] 2023.12.24

  • Исправлено, что databaseId не работает.
  • Исправлено, что автоинкрементные первичные ключи игнорируются и неправильно внедряются.
  • Исправлено создание дополнительных символов в режиме ChainWrapper GroupBy.
  • Исправлено кеширование selectOne.
  • Исправлено нарушение разрешений данных для нескольких таблиц.
  • Исправлено преобразование типа MySQL point.
  • Исправлено использование родительских атрибутов в Kotlin.
  • Автоматическое внедрение DdlApplicationRunner возвращает null, вызывая ошибку запуска high springboot.
  • Исправлено RuntimeUtils, связанное с безопасностью.
  • Добавлена поддержка fastjson2.
  • Gradle-wrapper обновлён до версии 8.4.
  • kotlin-gradle-plugin обновлён до версии 1.9.21.
  • mybatis обновлён до версии 3.5.15.
  • lombok обновлён до версии 1.18.30.
  • spring-boot3 обновлён до версии 3.2.0.
  • Версия mybatis-spring для spring-boot2 обновлена до 2.1.2.
  • Версия mybatis-spring для spring-boot3 обновлена до 3.0.3.
  • Удаление транзакции в общем сервисе saveOrUpdate.
  • Поддержка Trino, Presto, GBase8s-pg, SUNDB. Исправления в LambdaQuery, groupBy, orderBy, orderByAsc и orderByDesc: предупреждение устранено. Добавлена поддержка перезаписи методов doXxx для обеспечения возможности переопределения (несовместимое изменение, API-метод сделан final).
  • Исправление: устранена проблема с отсутствием конфигурации в inject-sql-session-on-mapper-scan.
  • Исправление: исправлена ошибка при использовании @OrderBy вместе с @TableId для сортировки по полю (несовместимое изменение, com.baomidou.mybatisplus.core.metadata.TableInfo.orderByFields был изменён).
  • Исправление: решена проблема ошибки несоответствия типов при логическом удалении записи в Service.
  • Исправление: решён конфликт между плагином разбивки на страницы Count и пользовательским ResultHandler.
  • Исправление: решена потенциальная проблема повторного входа при обработке заполнения полей.

Новые функции:

  • Новая функция: добавлен контроль над тем, разрешать ли вставку самоинкрементного первичного ключа. Можно использовать методы Inject(ignoreAutoIncrementColumn) или Inject(name, ignoreAutoIncrementColumn), чтобы контролировать, поддерживает ли Insert поведение вставки самоинкрементных первичных ключей.
  • Новая функция: добавлена поддержка автоматического заполнения при логическом удалении в режиме ActiveRecord.
  • Новая функция: встроен универсальный извлечение, поддерживающий использование вне проектов Spring.
  • Новая функция: в BaseMapper добавлен метод обновления (wrapper).
  • Новая функция: добавлены потоковые методы запросов в BaseMapper для поддержки больших данных.
  • Новая функция: метаданные генератора кода теперь доступны для tableName и columnName.
  • Новая функция: mybatis-plus-spring-boot3-starter и mybatis-plus-spring-boot3-starter-test поддерживают SpringBoot3.
  • Новая функция: поддерживается автоматическая инъекция плагина по умолчанию. Если MybatisPlusInterceptor не внедрён, будет автоматически внедрён com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor.
  • Новая функция: обновлена версия исходного кода Jdk до Java21.
  • Новая функция: gradle-wrapper обновлён до версии 8.4-rc-1.
  • Новая функция: kotlin-gradle-plugin обновлён до версии 1.9.20-Beta.
  • Новая функция: SpringBoot2.x обновлён до версии 2.7.15.
  • Новая функция: lombok обновлён до версии 1.18.30.

Оптимизация:

  • Оптимизация: зависимость mybatis-plus-extension от mybatis-spring изменена на необязательную (несовместимое изменение: если проект используется вне Spring или SpringBoot, необходимо вручную добавить зависимость).
  • Оптимизация: уменьшено количество ненужных конфигураций в spring-boot-starter (несовместимое изменение: com.baomidou.mybatisplus.autoconfigure.MybatisPlusProperties.configuration был изменён).
  • Оптимизация: удалены фиксированные параметры из обработчика заполнения полей, что позволяет более гибко извлекать параметры для заполнения из методов mapper.
  • Оптимизация: удалён вызов метода setAccessible в ReflectionKit, чтобы предотвратить удаление в более поздних версиях Jdk.
  • Оптимизация: оптимизирован метод selectOne для работы с потоковыми данными, извлекая максимум две строки данных и не выводя общее количество записей в журнале.
  • Оптимизация: улучшена обработка возвращаемых значений selectObjs, уменьшая необходимость в принудительном преобразовании типов.
  • Оптимизация: общая служба поддерживает множественные инъекции SqlSessionFactory.
  • Оптимизация: метод TableInfo.newInstance оптимизирован.
  • Оптимизация: удалено избыточное @SuppressWarnings("serial"). Текст запроса:

移除注解 OrderBy 的过时属性 isDesc 移除 TableInfo 过时方法 加入 JoinTableInfoInitHandler 类参与 TableInfo 初始化 修复 StringUtils.sqlInjectionReplaceBlank 方法过滤 SQL 不全,可能会导致 SQL 注入的情况 增加 IService.lambdaQuery(entity) 支持,写法更便捷 新增数据变更记录(数据审计)插件 DataChangeRecorderInnerInterceptor 新增查询条件方法 notLikeLeft 和 notLikeRight 数据权限多表解析部分处理优化 允许子类重写 orderBy 基础方法 gitee issues/I61F51 新增 Db 类,调整 SimpleQuery 类 新增脚本自动维护功能 新增支持手动拦截器忽略策略,例如 InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build()); 支持 PG 数据字段大写 ID 自增 fixed issues/I4T0YJ 代码生成器重构完成,合并回 MP 核心代码库 代码生成器增加是否生成 service 接口的开关

Перевод на русский язык:

Удалите устаревшее свойство isDesc в аннотации OrderBy. Удалите устаревший метод в TableInfo. Добавьте класс JoinTableInfoInitHandler, который будет участвовать в инициализации TableInfo. Исправьте метод StringUtils.sqlInjectionReplaceBlank, чтобы он полностью фильтровал SQL и не допускал SQL-инъекций. Расширьте поддержку IService.lambdaQuery (entity), чтобы сделать код более удобным. Внедрите плагин DataChangeRecorderInnerInterceptor для регистрации изменений данных (аудита данных). Добавьте методы notLikeLeft и notLikeRight для условий поиска. Оптимизируйте обработку разрешений на доступ к данным для нескольких таблиц. Разрешите подклассам переопределять базовый метод orderBy (gitee issues / I61F51). Создайте класс Db и настройте класс SimpleQuery. Автоматизируйте обслуживание скриптов. Предоставьте возможность игнорировать перехватчики вручную, например, с помощью InterceptorIgnoreHelper.handle (IgnoreStrategy.builder (). TenantLine (true) .build ()). Поддерживайте автоинкремент идентификаторов полей данных с заглавными буквами в PG (fixed issues / I4T0YJ). Завершите рефакторинг генератора кода и объедините его с основным кодом MP. В генераторе кода добавьте переключатель для включения или выключения генерации интерфейса сервиса. Часть 1

  • BaseMapper часть интерфейса, которая принимает Wrapper в методе select, поддерживает wrapper.first для установки RDS hint.
  • KtUpdateWrapper#set поддерживает значение null.
  • Поддерживаются универсальные первичные ключи.
  • Оптимизирована конфигурация реализации класса и типов данных для перехватчиков разбиения на страницы.
  • Используется вторичный кэш для повторного использования count-запросов.
  • Часть IService метода была скорректирована до метода по умолчанию.
  • Вторичный кэш совместим с сериализацией JSON (основная проблема — это когда возникает ошибка при десериализации long в int).
  • Решены проблемы с пакетными операциями и вложенными транзакциями (проблемы обновления вторичного кэша).
  • Исправлена проблема, из-за которой не заполнялся updateById при включенной оптимистичной блокировке.
  • Исправлено несколько проблем с методами setFieldValByName и getFieldValByName по умолчанию, которые вызывали исключения.
  • Исправлены проблемы с вложенной функцией в KtWrapper.
  • Исправлен постоянный сбой генерации класса Kotlin Freemarker.
  • Исправлена ошибка в SerializationUtils, связанная с утечкой ресурсов.

Часть 2

  • Два метода page интерфейса BaseMapper и соответствующие методы IService и ServiceImpl были оптимизированы.
  • Добавлена поддержка двух представлений логического удаления: «удалено» и «не удалено».
  • Исправлена ​​проблема, из-за которой пакетные операции не очищали кэш.
  • Пакетные операции теперь преобразуются в DataAccessException.
  • Обновлены mybatis до версии 3.5.3, mybatis-spring до версии 2.0.3 и jsqlparser до версии 3.1.
  • Изменены пакеты mapper и chainWrapper.
  • Создан новый класс инструментов ChainWrappers.
  • Реализован новый интерфейс IdentifierGenerator для поддержки пользовательских идентификаторов.
  • Регулярное сопоставление имён таблиц в инструментах генерации кода было заменено на likeTable и notLikeTable.
  • Плагин разбивки на страницы теперь поддерживает настраиваемую обработку ограничений страниц и обработку переполнения общего количества страниц.
  • Исправлена ​​ошибка, вызванная SqlExplainInterceptor, приводящая к двойному увеличению последовательности Oracle.
  • Поддержка вторичного кэша для разбиения на страницы.
  • Расширен вывод журнала p6spy.
  • DbConfig добавлен атрибут propertyFormat, а атрибут TableFieldInfo удалён.
  • Генератор последовательностей был оптимизирован, устаревший атрибут clazz в KeySequence.
  • Ошибка, вызванная ключевым словом Ognl, устранена.
  • Устранена проблема с отключением переключателя обновления.
  • Логика заполнения была оптимизирована.
  • ISqlRunner теперь поддерживает selectPage.
  • Глобальное логическое удаление полей поддерживается.
  • Методы BaseMapper можно настраивать.
  • Добавлены базы данных «虚谷», «Oracle12c» и «Kingbase».
  • Проблема, когда имена полей базы данных и имена полей сущности различаются и приводят к появлению null как xxx, решена.
  • Устаревший ID_WORKER_STR теперь автоматически определяет тип первичного ключа.
  • При включении аннотаций принудительно генерируется TableName.

Часть 3

  • Код генератора теперь поддерживает базу данных Dameng.

  • Исправлена ​​ошибка с несколькими первичными ключами в запросах таблиц.

  • Новый метод updateWrapper пытается обновить и, если не удаётся, продолжает выполнение saveOrUpdate(T).

  • Тип numeric instant в pg теперь поддерживается.

  • Исправлена ​​проблема с отсутствием InjectionConfig, что приводило к невозможности генерации кода.

  • Исправлена ​​ошибка, из-за которой поле логического удаления Date приводило к нулевому значению даты, отличной от даты удаления.

  • Версия mybatis обновлена до 3.5.2, а версия jsqlparser — до 2.1.

  • EasyScheduler планирует отправку запросов Apache, удаляя ограничения протокола 996NPL.

  • SQL был изменён, чтобы удалить SET.

  • Перечисление SqlMethod UPDATE_ALL_COLUMN_BY_ID было удалено, вместо него рекомендуется использовать AlwaysUpdateSomeColumnById.

  • Исправлена ​​ошибка #1412 (github), из-за которой mybatis-plus-generator не поддерживал Oracle.

  • Удалены глобальные конфигурации dbType и columnLike.

  • FieldStrategy был удалён, и вместо него используются три новых альтернативы.

  • PerformanceInterceptor был удалён, рекомендуется использовать p6spy.

  • El был разделён на конкретные атрибуты jdbcType и typeHandler.

  • Gradle-5.5.1 и lombok-1.18.4 обновлены.

  • Когда selectStatement.getSelectBody() имеет тип SetOperationList.

  • Атрибут sqlParserCache в GlobalConfig был удалён вместе с LogicSqlInjector.

  • OrderItem был добавлен в качестве нового атрибута в addOrder метода страницы.

  • Nested интерфейс имеет метод с параметром Function<Param, Param>, который был изменён на Consumer.

  • Gitee/I10XWC теперь позволяет определять пользовательские типы на основе информации TableField.

  • Merge pull request #1445 от kana112233/3.0.

  • Теперь поддерживается фильтрация родительских свойств.

  • Тестирование исключений пакетных операций было расширено.

  • Многопользовательский идентификатор теперь может выражать несколько условий запроса ID.

  • Были добавлены два обработчика json: jackson и fastjson. ГлобалКонфиг: sqlParserCache устарел.

  • Изменения в mybatis: обновление до версии 3.5.1, mybatis-spring — до 2.0.1, jsqlparser — понижение до версии 1.2.

  • Интерфейс ISqlInjector: метод injectSqlRunner удалён.

  • Класс SqlFormatter: устарел.

  • Решена проблема путаницы в логике удаления для метода SqlCommandType автоматического внедрения.

  • Добавлен AlwaysUpdateSomeColumnById.

  • SFunction наследуется от Function.

  • Атрибуты columnLike и dbType в DbConfig устарели.

  • В DbConfig добавлены атрибуты schema и columnFormat.

  • Аннотации TableField: добавлен атрибут keepGlobalFormat.

  • Аннотации TableName: добавлены атрибуты schema и keepGlobalPrefix.

  • Исправлена ошибка с форматом временных файлов (tmp): github #1048.

  • Обработка абстрактных имён таблиц/полей: INameConvert, стратегия на github #1038.

  • Поддержка динамической конфигурации схемы DB2: github #1035.

  • Поле key в кеше заменено с className на .class. При использовании dev-tools возникает исключение MybatisPlusException: Your property named «xxxx» cannot find the corresponding database column name! Решение: удалить dev-tools.

Версия [v3.1.0] от 24.02.2019

  • Обновление mybatis до версии 3.5.0, mybatis-spring до версии 2.0.0, jsqlparser до версии 1.4.
  • Добавление поддержки журналов p6spy.
  • Изменение метода getOne(Wrapper queryWrapper) в IService: если получено несколько строк, будет выброшено исключение TooManyResultsException.
  • Исправление проблемы с пользовательской разбивкой на страницы, которая не поддерживает аннотацию @select.
  • Исправление ошибки в генераторе: режим swagger в kotlin не работает.
  • Исправлено: поля с префиксом is автоматически не аннотируются.
  • Исправлено: Active mode с Serializable не наследует пакет класса.
  • Исправлено: поддержка общих полей для автоматического чтения родительских свойств класса.
  • Исправлено: преобразователь перечислений (аннотация) не работает при сохранении в процедуре.
  • Исправлено: ошибка логики удаления в шаблоне beetl.
  • Исправлено: значение по умолчанию mapUnderscoreToCamelCase в Configuration, созданной через mybatis-config.xml, не равно true.
  • Исправлено: динамический прокси вызывает ошибку в анализаторе SQL.
  • Исправлено: механизм повторной попытки в mapper может вызвать ошибку при определённых условиях.
  • Оптимизация: добавлена поддержка указания defaultEnumTypeHandler для общей обработки перечислений.
  • Оптимизация: копирование последних изменений из hibernate в SqlFormatter.
  • Удалён метод in в wrapper и проверка на пустоту для coll и динамических массивов.
  • Удалены методы notInOrThrow и inOrThrow в wrapper.
  • Удаление delete в цепочке вызовов IService.
  • XML-конфигурация для горячей загрузки удалена, оставлен только класс MybatisMapperRefresh с пометкой об устаревании.
  • Ежедневные оптимизации.

Версия [v3.0.7.1] от 02.01.2019

  • Исправлено: LambdaWrapper не может получить кеш первичного ключа.
  • Оптимизирован update в IService для поддержки операции remove.
  • Пометка delete в цепочке вызовов query в IService как устаревшая.
  • Ежедневная оптимизация.

Версия [v3.0.7] от 01.01.2019

  • Генератор оптимизирован для поддержки генерации java8 time types для postgresSql и sqlServer.
  • LambdaWrapper оптимизирован для отражения информации о полях с заглавными буквами.
  • Select в LambdaWrapper оптимизирован: автоматическое as для полей, которые не соответствуют базе данных.
  • Кэш TableInfo в Configuration оптимизирован: при повторном сканировании BaseMapper сохраняется только последний элемент.
  • MergeSegments оптимизирован: улучшен способ получения getSqlSegment.
  • SQL-инжектор оптимизирован: инициализация modelClass выполняется быстрее.
  • Первый параметр update в BaseMapper теперь может быть null.
  • Добавлено 4 метода цепочки вызовов в IService.
  • Добавлены шаблоны beetl в генератор кода.
  • IdWorker оптимизирован: добавлен миллисекундный идентификатор времени для использования в качестве идентификатора заказа.
  • Wrapper оптимизирован: добавлен метод inOrThrow, который генерирует исключение MybatisPlusExcuption, если параметр пуст.
  • MetaObjectHandler оптимизирован: добавлено несколько методов default, которые вставляют значения на основе аннотаций.
  • Kotlin оптимизирован: добавлена поддержка lambda. Классы KtQueryWrapper и KtUpdateWrapper.
  • Новый способ использования пользовательского SQL: теперь можно использовать «пользовательский sql» + ${ew.customSqlSegment}.
  • InsertBatchSomeColumn оптимизирован.
  • Исправлено: setTotal(Long total) -> setTotal(long total).
  • Исправлено: setSearchCount является общедоступным.
  • Исправлено: если where начинается с orExpression, прямое использование and для объединения информации о арендаторе может привести к логическим ошибкам.
  • Исправлено: лямбда-метод wrapper передаёт sqlSelect вниз.
  • Исправлено: flushStatements в отдельных операциях batch в ServiceImpl.
  • Исправлено: проблема с обобщёнными типами в selectObjs.
  • Удалён InsertBatchAllColumn.
  • Из ServiceImpl удалены все транзакции, кроме batch.
  • Модель удалена из Model.
  • AbstractSqlInjector удалён: isInjectSqlRunner (SqlRunner инициализируется раньше, и в настоящее время isInjectSqlRunner нельзя контролировать).
  • MybatisSessionFactoryBuilder удалён.
  • Зависимость от mybatis-plus-generator удалена: используется по мере необходимости.
  • xml горячая загрузка восстановлена, но помечена как устаревшая.
  • jsqlparser обновлён до версии 1.3.
  • Ежедневная оптимизация.

Версия [v3.0.6] от 18.11.2018

  • Исправлено: entity с двумя или более условиями и конкатенацией ORDER BY или GROUP BY приводит к WHERE X1 =? AND X2.
  • Refactor (SerializedLambda.java): метод рефакторинга для повышения безопасности десериализации и оптимизации именования.
  • Базовый Mapper оптимизирован: поддержка создания собственных методов внедрения для родительских классов Mapper.
  • Использование вместо .
  • Частичная оптимизация: строки форматируются только после выдачи исключения.
  • Улучшение производительности IdWorker: генерация UUID с использованием параллелизма.
  • feat: динамическая нумерация страниц, модель, оптимизация синтаксиса разбивки на страницы, исправление ошибок db2.
  • Assert поддерживает i18n для многоязычных сообщений об ошибках.
  • Контроль над тем, подсчитывается ли total SQL, добавлен метод isSearchCount.
  • Перемещение зависимости spring из основного модуля в расширение.
  • fix: Junit.assertTrue.
  • Принудительное использование настраиваемого ParameterHandler, удаление ограничений типа byId.
  • Добавлена общая функциональность для InsertBatch, включая соответствующие тесты, а также оптимизацию кода и производительности.
  • IPage оптимизирован: добавлены функции, преобразование типов.
  • Автоматическое заполнение: определение того, следует ли заполнять значение, и пропуск заполнения, если оно пустое.
  • Пороговое значение batchsize установлено на 1000 для повышения эффективности.
  • Исправлено: saveOrUpdate выполняет ошибку в экстремальных ситуациях.
  • MybatisSqlSessionTemplate удалён.
  • Горячая загрузка xml удалена.
  • Другие оптимизации. excludeColumns метод
  • Исправление проблемы с условием в аргументе last метода.
  • Исправление ошибки BUG при удалении 1=1.
  • Удаление поддержки spring-devtools.
  • Исправление проблемы, когда все свойства сущности равны null и происходит ошибка при конкатенации SQL.
  • Кэширование информации о рефлексии классов для повышения производительности.
  • Наследование от Model класса: теперь не нужно переопределять метод pkVal().
  • Решение проблемы с MPE при настройке config-location, а также оптимизация логики инициализации.
  • Исправление ситуации, когда mapper.xml приводит к некорректному удалению логики.
  • Настройка транзакций в ServiceImpl: решение проблемы Gitee issue/IN8T8.
  • Исправление проблемы с разбиением на страницы при работе с DB2: решение GitHub issues/526.

[v3.0.4] 2018.09.28

  • Коррекция глобального конфигурационного параметра FieldStrategy для значений, отличных от значения по умолчанию.
  • Устранение проблем с пакетными транзакциями.
  • Проблемы с обработкой логики в R классе API: автоматическое исправление.
  • Модификация скрипта H2 для инициализации и удаления тестовых случаев.
  • Добавление комментариев.

[v3.0.3] 2018.09.17

  • Новый метод фильтрации полей запросов.
  • Исправлена ошибка с порядком сортировки при использовании нескольких аргументов.
  • Добавлен компонент LogicDeleteByIdWithFill.
  • Решены проблемы GitHub issues/476 и GitHub issues/360, Gitee issues/IMIHN и IM6GM.
  • Улучшен параметр allEq: использование дженериков для значения.
  • Исправлены проблемы с использованием BatchExecutor при сохранении и обновлении данных.
  • Исправлен метод getOne для получения нескольких записей вместо исключения.
  • Исправлены отдельные методы сервиса для использования по умолчанию.
  • Исправлена проблема с постраничной навигацией при установленном параметре desc: некорректное поведение SQL.
  • Удалены ненужные методы.
  • Разрешена проблема с генератором и опциональными jar-файлами.
  • Перегрузка метода select(Predicate predicate).
  • Другие оптимизации.

[v3.0.2] 2018.09.11

  • Добавлен класс-помощник Wrapper для условий.
  • Добавлена возможность управления печатью баннера через атрибут.
  • Исправлена проблема Gitee #IMMF4: некорректная работа пакетных вставок (AR) в транзакции.
  • Исправлена ошибка, когда у сущности нет первичного ключа, и генерируется некорректное условие where.
  • Обработка SQLRunner для получения и освобождения сеансов SQL.
  • Исключено глобальное кэширование сеансов SQL, добавлены сеансы SQL для Model и общего слоя сервисов.
  • Абстрактные исходные перечисления обрабатываются через регистрацию: упрощение расширения.
  • Оптимизация расширяемости и другие улучшения.

[v3.0.1] 2018.08.31

  • Исправлена ошибка генерации кода при установке префикса таблицы.
  • Добавлена аннотация EnumValue для сканирования и обработки общих перечислений.
  • Исправлено некорректное использование логической операции удаления.
  • Улучшения в обработке диалекта DB2.
  • Новые тестовые случаи и другие изменения.

[v3.0-RELEASE] 2018.08.28 🍭

  • Обновлён оптимизированный метод обновления (et,ew), где et содержит аннотацию version для перезаписи поля версии.
  • Оптимизирован и улучшен генератор кода.
  • Пакетный поиск больше не вызывает исключений при пустом наборе (для перечислений и псевдонимов).
  • Исключение сеансов SQL.
  • Изменение шаблона issue и улучшение комментариев.
  • Оптимизация процесса инициализации, добавление проверки количества аннотаций для логического удаления.
  • Возможность пропуска проверок SQL.
  • Поддержка базы данных Dameng.
  • Ограничение числовых значений в коде для обеспечения строгой типизации: ограничение API и начальных значений.
  • Перенос анализа SQL в SqlInjector.
  • Прочие оптимизации кода.

[v3.0-RC3] 2018.08.19 🍭 RC3

  • Поддержка выбора свойств для исключения по умолчанию при выборе TableField.
  • Разрешение проблемы с обратной последовательностью страниц.
  • Объединение обработки прокси-сервера dataSource 2.x.
  • Исключение атрибута DbConfig.columnUnderline.
  • Отсеивание пустых результатов запроса selectObjs.
  • Возврат значений insert и update в baseMapper без использования обёрток.
  • Фиксирование Gitee issues/IM3NW.
  • Оптимизация кода и улучшение комментариев.

[v3.0-RC2] 2018.08.10 🍭 RC2

  • Генератор с добавлением MODULE_NAME для конфигурации.
  • Исправлено некорректное применение настройки defaultEnumTypeHandler.
  • Совместимость со Spring boot 1.x для запуска.
  • Ежедневные оптимизации, тестовые примеры и оптимизация исключений.
  • Шаблоны Gitee Github issue и pull_request.
  • Отмена экранирования ключевых слов базы данных: только поддержка режима аннотации.
  • Оптимизация исключений: использование assert или exceptionUtils.
  • Установка нижнего подчёркивания для преобразования в CamelCase в конфигурации ColumnUnderline.
  • Проблема с последовательной сериализацией страниц asc и desc.
  • По умолчанию dbType установлен как other: если пользователь не настроил, будет автоматически получен dbType.
  • Оптимизация ColumnUnderline и MapUnderscoreToCamelCase.
  • Фиксация ILY8C: генератор с указанием IdType в сценарии импорта пакета.
  • Дополнительные комментарии и множество новых тестовых примеров.

[v3.0-RC1] 2018.08.01 🍭 RC1

  • Оптимизация инструментов и исправление потенциальной тупиковой ситуации в многопоточной среде.
  • Введение утверждений для замены исключений в некоторых случаях.
  • Отказ от избыточного «implements Serializable».
  • Все магические значения преобразованы в глобальные константы.
  • MP 3.0 больше не нуждается в PageHelper.
  • Issue #384: поддержка QueryWrapper для исключения определённых полей.
  • Новый баннер и общее ощущение обновления.
  • Дальнейшая оптимизация процесса исключений.
  • Изменён способ создания экземпляров объектов класса: возможность создания приватных классов.
  • Без конфигурации можно использовать Gitee issues/ILJQA.
  • Освобождение сеансов SQL и оптимизация тестирования ActiveRecord.
  • Только вызов last приводит к проблеме с SQL.
  • Ошибка при лямбда-выражении, когда первое свойство является базовым свойством.
  • Увеличение ограничений дженериков и форматирование кода.
  • Оптимизация AbstractWrapper с ISqlSegment.
  • Прочее.

[v3.0-RC] 2018.07.23 🍭 RC

  • Размер страницы меньше 0 автоматически настраивается на режим списка.
  • Введён анализатор атак SQL.
  • Оптимизация основных методов и тестирование параметров querywrapper lambda.
  • Сервисный слой методов переименован в соответствии с правилами Али (извинения перед маленькими белыми мышами).
  • Генератору разрешено регулярное выражение для сопоставления имён таблиц.
  • Версия обновляется после оптимистичной блокировки.
  • GitHub #385: динамические имена таблиц могут использовать Wrapper.
  • Исправление Gitee issues/ILEYD.
  • Page перемещён в интерфейс IPage.
  • Гамма не может автоматически присваивать ID.
  • Постоянная ссылка на оптимизацию кода. starter

Изменён на Spring boot 2+.

  • Рефакторинг генератора для предоставления пользовательских шаблонов DB и поддержки различных движков шаблонов.
  • Исправление ошибок (BUG).

[v2.1.9]

Дата: 28 января 2018 года. Кодовое название: «Ностальгия» (посвящается 2017 году, организации Baomidou и совместному росту её молодых участников, а также стремлению к процветанию в 2018 году).

  • Добавлена новая функция постраничного просмотра с возможностью настройки оптимизации Count SQL.
// Не проводить оптимизацию Count SQL
page.setOptimizeCountSql(false);
  • Реализована поддержка внедрения SQL-инъекций и генераторов первичных ключей.
  • Исправлены проблемы с GitHub issues/231, GitHub issues/234.
  • Устранена логическая ошибка при выборе по идентификаторам (selectByIds coll).
  • Исправлена проблема с Gitee issues/IHF7N.
  • Исправлена проблема с Gitee issues/IHH83.
  • Обеспечена совместимость конфигурации и приоритет использования пользовательского внедрения.
  • Другие улучшения.

[v2.1.9-SNAPSHOT]

Дата: 16 января 2018 года.

  • Изменён режим зависимостей Gradle.
  • Введён новый тип IdType — ID_WORKER_STR (строковый тип), который можно использовать с методом IdWorker.getIdStr() для получения строкового типа.
  • Добавлен новый атрибут update в аннотацию TableField для предварительной обработки и установки значений полей.
Например: @TableField(.. , update="%s+1") где %s будет заменено на значение поля.
Вывод SQL: update таблицы set поле = поле + 1 where ...
Например: @TableField(.. , update="now()") используется системное время базы данных.
Вывод SQL: обновление таблицы set поле = now() where ...
  • Добавлен атрибут condition в аннотацию TableField для предварительной обработки WHERE условий сущностей с использованием заданных правил.
@TableField(condition = SqlCondition.LIKE)
private String name;
Вывод SQL: select таблицы where name LIKE CONCAT('%',значение,'%')
  • Встроенный модуль starter теперь содержит jdbc MP пакет, что упрощает использование boot.
  • Поддержка генерации кода для представлений SQL Server.
  • Возможность независимой настройки стратегий именования, по умолчанию используется стратегия naming.
strategy.setNaming(NamingStrategy.underline_to_camel);// таблица именования генерируется по стратегии
strategy.setColumnNaming(NamingStrategy.underline_to_camel);// позволяет независимо устанавливать стратегию именования полей, по умолчанию используя стратегию именования
  • Абстрактный класс AbstractTemplateEngine шаблона движка абстракции в генераторе кода, позволяющий создавать собственные шаблоны движков, и дополнительный встроенный движок Freemarker.
// Выбор движка Freemarker
mpg.setTemplateEngine(new FreemarkerTemplateEngine());
  • Предоставлена возможность исключения анализа SQL через аннотацию @SqlParser(filter=true) для многопользовательских сценариев.
# Включить кэш анализатора SQL
mybatis-plus:
    global-config:
        sql-parser-cache: true
  • Улучшена обработка XML-файлов, позволяя произвольно импортировать другие фрагменты XML SQL.
  • Исправлен баг с author, содержащим 123.
  • Исправлена ошибка #IGQGE:Wrapper пуст, но page.getCondition() не пуст. Проблема с передачей условия.
  • Исправлена ошибка #IH6ED:Pagination dubbo. Проблемы с поддержкой сортировки и других атрибутов.
  • Проверка на пустоту Wrapper с использованием == для предотвращения влияния переопределения метода equals().
  • Предотвращение внедрения пользовательских базовых классов.
  • Отделение SQL от отдельного представления в классе SqlUtils.
  • Унификация отступов и стилей кодирования.
  • Оптимизация производительности выполнения кода и анализа SQL.
  • Исправлена ошибка gitee issue/IHCQB.
  • Модификация compileOnly до optional в springboot-configuration-processor.
  • Прочие улучшения.

[v2.1.8]

Дата: 02 января 2018 года. Кодовое имя: «Скорбь» (траур).

  • Устранение ошибки в генераторе кода из-за префиксов полей.
  • Использование полных имён классов вместо ручного ввода.
  • Изменения в сборке.
  • Игнорирование предупреждений о каталогах.
  • Прочие оптимизации.

[v2.1.8-SNAPSHOT]

Дата: 28 декабря 2017 года. Кодовое имя: «Перевёрнутая рыба» (подарок от Цю Цю).

  • Автоматическое преобразование Map в нижний регистр верблюжьего регистра.
  • Поддержка статических констант в Kotlin сущности.
  • Улучшение логики построения постраничного просмотра.
  • Слияние pull request #201.
  • Fix: выбор по карте @alexqdjay.
  • Добавление тестов для SQLRunner, исправление ошибки, когда selectObjs извлекал только одно поле.
  • Новый BlobTypeHandler.
  • Удаление начальной конфигурации размера параметра map.
  • Введение .editorconfig, решение проблем с пробелами в шаблонах.
  • Hikaricp не может распечатать SQL в пуле соединений.
  • Глобально удалены пути, mapperLocations больше не требуется.
  • K-бог полностью покрывает тестовые случаи.

[v2.1.7]

Дата: 11 декабря 2017 года. Кодовое имя: «Чистый ветер приходит издалека».

  • Обработка перечислений: базовые типы, числовые типы, строковые типы.
  • IGDRW: Ошибки в комментариях исходного кода, которые могут ввести в заблуждение.
  • Пушечное ядро PR!42: Добавление перегруженных методов построения для постраничного просмотра.
  • Генерация кода: решения для проблем с превышением максимального курсора в Oracle.
  • Фиксированная ошибка gitee IGNL9.
  • Волна K-бога: большое количество тестовых случаев.
  • Применение transient для удаления некоторых полей из Page во время сериализации.
  • Исключение бесполезных журналов.
  • Фикс #IGI3H:selectBatchIds параметр изменён на Collection.
  • Логическая ошибка исправления SQL-инжектора.
  • Поддержка нескольких сортировочных полей.
  • Фиксация ошибки GitHub #185:2.0.2 версии с автоинкрементом первичного ключа и проблемой вставки пакета PR.
  • Прочие улучшения.

[v2.1.6]

Дата: 22 ноября 2017 года. Кодовое имя: «Маленький осенний поцелуй».

  • Модуль разделён на support, core и generate, обеспечивая выбор зависимостей для генерации кода.
  • Решение проблемы gitee issue IFX30 с разделением пакета mybatis-plus-support.
  • Решение проблемы gitee issue IGAPX с универсальным перечислением bigdecimal типов отображения.
  • Дополнение Druid, заполнение изменений полей.
  • Исправления ошибок в генерации кода Kotlin.
  • Объединение gitee pr 40, обновление всех столбцов и т. д., исключая fill = FieldFill.INSERT комментарии полей, спасибо Elsif.
  • Настройка конструкции Kotlin изменена.
  • Оптимизированы инструменты SQL рефлексии.
  • Прочие улучшения.

[v2.1.5]

Дата: 11 ноября 2017 года. Кодовое имя: «Отступник».

  • Универсальная обработка перечислений, совместимая со Spring Boot.
  • Проблемы с преобразованием ключевых слов PostgreSQL в неключевые слова.
  • Cat73 PR, небольшая настройка автоматически сгенерированного кода.
  • Поддержка генерации Kotlin кода.
  • Ошибка исправления metaObj обработчика set val, который не включён в ...
  • Стандарты Alibaba изменены.
  • Прочее.

[v2.1.3 - 2.1.4]

Дата: 15 октября 2017 года.

  • Универсальный обработчик перечислений добавлен, вдохновлённый демонстрацией Spring Boot.
  • Анализ SQL оптимизирован.
  • Схема анализа арендаторов добавлена, требует доработки.
  • Прочие улучшения.

[v2.1.2]

Дата: 17 сентября 2017 года. Кодовое имя: X.

  • Исправление ошибки генератора кода.
  • Fixed gitee issues/IF2DY.
  • Изменение цепочки операций страницы.
  • Исключено экранирование Oracle.
  • Fixed GitHub issues/119.
  • Fixed gitee issues/IF2OI.

[v2.1.1]

Дата: 12 сентября 2017 года. Кодовое имя: Маленькая крышка горшка.

  • Исправлена ошибка, когда общее количество записей превышало первую страницу.
  • Fixed IEID6.
  • Обновление MyBatis до версии 3.4.5.
  • Обновлён генератор шаблонов Veloctiy до версии 2.0.
  • Обновлено до jsqlparser версии 1.1.
  • Новая логика анализа SQL с возможностью динамического расширения.
  • Демонстрация Spring Boot с демонстрацией мультитенантного анализа SQL.
  • jasonlong10 PR: поддержка анализа производительности для OraclePreparedStatementWrapper.
  • Fixed github issues/145.
  • Fixed gitee issue/IF1OF.
  • Добавить тестовый случай sqlSelect("distinct test_type").
  • Добавлены пропущенные классы внедрения генератора шаблонов.
  • Fixed github issues/MYSQL: код генерации таблиц с именами, содержащими зарезервированные слова, приводит к ошибкам.
  • Fixed github issues/134. Код генерации поддерживает указанную схему таблицы полей в соответствии с порядком по умолчанию.

Другие оптимизации и настройки.

[v2.1.0] 2017.08.01, кодовое название: «Маленький осенний сезон».

Основные функции:

  • исправлены проблемы с пакетными операциями SQLSession;
  • решены проблемы с форматированием SQL;
  • добавлен UUID для тестирования основных ключей;
  • устранены ошибки BUG автоматического заполнения;
  • обновлён pom-файл зависимостей, область действия spring-test — test;
  • изменена версия драйвера sqlServer, удалены ненужные тесты строкового типа для оптимистической блокировки;
  • решена проблема с нижним уровнем отображения плюса;
  • исправлена ошибка SqlHelper при обработке пустого Wrapper, но не пустой page.getCondition();
  • объединён запрос на вытягивание!33: создание сущности, упорядочивание полей от старого тысячи/мастера;
  • решено использовать прокси-объект, который приводит к невозможности получения информации о кэше экземпляра;
  • решено логическое значение is в начале генерации SQL-ошибки;
  • установлена неправильная настройка DBType;
  • исправлен код генерации @TableLogic;
  • добавлены новые PostgreSqlInjector, автоматическая инъекция, обработка чувствительности к регистру полей, автоматическое экранирование двойных кавычек;
  • используется настраиваемый ввод адреса хранилища и информации о пользователе;
  • добавлена сортировка Sequence, новый метод freeTotal() для режима pageHelper;
  • добавлено два предложения по улучшению плагина разбивки на страницы;
  • добавлен метод setSqlSelect(String... columns) для удобства использования автоматически сгенерированных сущностей;
  • исправлено 116 проблем GitHub;
  • исправлены ошибки Osgit IE436, IDVPZ, IDTZH.

Генерация кода:

  • обновлены шаблоны создания сущностей;
  • исправлены ошибки автоматической генерации кода заполнения;
  • добавлен генератор поддержки schema для postgresql;
  • отрегулированы проблемы сериализации импорта;
  • другие изменения.

[v2.1-gamma] 2017.06.29.

Основные функции:

  • исправлены предыдущие ошибки автоматического определения типов SQLserver;
  • решён вопрос с пользовательской разбивкой на страницы, когда невозможно настроить диалект базы данных.

Создание кода:

  • улучшена автоматическая генерация кода заполнения;
  • исправлены повторяющиеся поля в генерации postgresql.

Проблемы, вызванные обновлением предыдущей версии (2.0.9):

  • исправлена проблема, из-за которой невозможно было прочитать основной ключ, если он не был первым;
  • исправлена исключительная ситуация Insert not found et при выполнении пользовательских операций вставки;
  • исправлены ошибки генерации SQL (обычные инъекции Group, Having, Order);
  • исправлена логическая ошибка генерации SQL.

Mybatis-Plus-Boot-Start [1.0.4].

Изменения:

  • удалена прямая зависимость Mybatis-plus;
  • удалена прямая зависимость SpringBoot jdbc-starter.

[v2.0.9] 2017.06.26, кодовое имя: K Бог.

Mybaits-Plus.

Основные функции:

  • исправлены конфликты оптимистичной блокировки и логического удаления;
  • обработан случай, когда ранее не учитывалось существование и открытие нижнего подчёркивания конфигурации при генерации инъекций SQL;
  • исправлена проблема наследования EntityWrapper;
  • добавлен условный тест Wrapper;
  • поддержка записи журнала для анализа производительности;
  • переписан toString Wrapper для решения проблемы отображения null при отладке;
  • обработка последовательности вне микросекундного параллелизма, где большинство конфликтов возникает из-за чётности;
  • стратегия оптимизации изменена, а свойства аннотаций скрыты;
  • оптимизирован способ внедрения SQL, удалён предыдущий способ внедрения XML;
  • проблема с двумя Where в логическом удалении;
  • добавлены другие реализации последовательностей баз данных и открыт интерфейс для расширения пользователями;
  • оптимизация оптимистичной блокировки;
  • оптимизирована эффективность выполнения Where AND OR в Wrapper;
  • решена проблема невозможности заполнения основного ключа без добавления mybatis-config.xml;
  • MybatisPlus поддерживает сборку Gradle;
  • Wrapper добавляет методы and() и or();
  • GlobalConfiguration оптимизирован, GlobalConfigUtils выделен для уменьшения сцепления;
  • решены проблемы разбиения на страницы SQLserver2008 и SQLServer2005;
  • автоматическое распознавание базы данных, уменьшение явной конфигурации пользователя;
  • разбиение на страницы оптимизировано, уменьшено количество отображаемых пользователем свойств конфигурации;
  • автоматически заполняется поле;
  • новая PageHelper, управление разбиением на страницы через текущий поток (предыдущие пользователи не должны использовать его, этот метод подходит только для пользователей MybatisPageHelper);
  • значительно увеличено количество тестовых случаев (спасибо поддержке K Бога);
  • другие оптимизации кода;
  • добавлен JSqlparser как зависимость, нет необходимости вручную добавлять jar-пакет;

Генерация кода:

  • поддерживается логическое удаление;
  • поддерживается оптимистичная блокировка;
  • решается проблема, заключающаяся в том, что генератор не может распознать основной ключ SQLServer.
  • поддерживается Lombok;
  • поддерживается режим сборки;
  • добавляются типы Clob и Blob;
  • ошибка преобразования Oracle Number исправлена;

Mybatis-Plus-Boot-Start [1.0.2], кодовое имя: Qingfeng.

Основные функции:

  • обрабатывается случай, когда AR-режим devtool заменяет источник данных;
  • добавляется поддержка логического удаления;
  • добавляется последовательность.

[v2.0.8] 2017.05.15.

  • Добавлен параметр настройки объекта sqlSelect в Wrapper.
  • Совместимость с отсутствием аннотаций.
  • Оптимизирована оптимистичная блокировка, регистрация оптимизатора удалена в фазе сканирования. Тестирование перенесено в среду h2.
  • Улучшена горячая загрузка, путь mapper больше не настраивается.
  • Уменьшено обновление конфигурации Mapper.
  • Исправлена ошибка, когда значение tableFiled равно нулю, включена конфигурация нижнего подчёркивания.
  • Последовательность обновлена.
  • Открыта информация о таблице, зарезервирован подкласс для перезаписи.
  • Изменён тест Idwork.
  • Поддержка devtools.
  • Исправлено 259, поддержка общего поля генерации xml resultMap.
  • Исправлено pull 28, поддержка перегрузки атрибутов.

[v2.0.6 и v2.0.7] 2017.04.20.

  • Добавлено логическое удаление.
  • Добавлена последовательность Oracle.
  • Завершена поддержка оптимистичной блокировки.
  • Завершено заполнение поля, поддерживается обновление заполнения.
  • Версия mybatis обновлена до 3.4.4.
  • Код оптимизирован и поддерживается ограничением Wrapper и другими логическими операциями.
  • Исправлены ошибки id стратегии auto и другие ошибки генератора.

[v2.0.5] 2017.03.25.

  • Исправлена ​​ошибка, связанная с тем, что соединение пула страниц не было закрыто.
  • Решены проблемы 217.
  • IMetaObjectHandler не работает должным образом, когда тип первичного ключа — AUTO или INPUT.
  • Ошибка с заполнителем like исправлена.
  • Генерируется код, и если каталог не существует, он создаётся.

[v2.0.3 и v2.0.4] 2017.03.22.

  • Структура Wrapper оптимизирована.
  • Первоначальная оптимизация соединения с базой данных.
  • Проблема с инициализацией Page решена (ранее она могла быть активирована только через конструктор, теперь её можно активировать через setget).
  • Поддерживается плагин оптимистичной блокировки.
  • Нижний уровень Wrapper оптимизирован для обработки параметров, что лучше сочетается с PreparedStatement.
  • Уровень журнала ошибок оптимизирован.
  • Метод isWhere добавлен в Wrapper, теперь вы можете настроить, следует ли добавлять «WHERE».
  • JDK версии понижена до совместимости, ранее связанный код использовал новые функции 1.7, текущая версия отменена.
  • Ошибки генерации SQL для SQLserver исправлены и код оптимизирован.
  • MybatisPlus и SQLSession оптимизированы.
  • Ситуация, когда транзакция не принадлежит текущей транзакции, когда точка останова не настроена, и проблема с несколькими SQLSessions, вызывающими транзакцию, решена.
  • Выполнение sql класса, sqlRunner усилено.
  • Модель добавляет идентификатор сериализации, чтобы избежать изменения идентификатора последовательности при изменении модели позже.
  • Тестовый пример базового Mapper расширен.
  • Спасибо всем маленьким партнёрам за их хорошие предложения и вклад кода, я не буду называть их имена одно за другим.

[v2.0.2] 2017.02.13.

  • Логическая ошибка глобального конфигурационного файла 2.0.1 исправлена.
  • Тип конфигурации byId принудительно удалён.
  • Оптимизация Wrapper Page и других программ.
  • Автоматическое закрытие соединения с базой данных оптимизировано (ранее требовалась ручная настройка транзакции).
  • Генератор кода оптимизирован, нижний регистр имени аннотации не обрабатывается, поддерживаются дополнительные шаблоны, такие как jsp html и т. д.
  • Новый сервисный слой протестирован.
  • Журнал SQL интегрирован в плагин анализа производительности.
  • Многоуровневая конфигурация источника данных оптимизирована для поддержки нескольких баз данных. Решить проблему с импортом BigDecimal при генерации кода.
  • Освободить автоматическое считывание соединения с базой данных при чтении.
  • Оптимизировать глобальный механизм проверки (механизм EMPTY добавляет игнорирование типа Date).
  • Оптимизировать внедрение, избегать сканирования BaseMapper.
  • Оптимизировать внедрение, удалить лишние методы внедрения.
  • SQLlikeType переименовать в SqlLike.
  • Решить проблему с ошибкой горячей загрузки связанных запросов.
  • SqlQuery переименовать в SqlRunner.
  • Улучшить и дополнить генератор кода.
  • Исправить ошибку генератора кода с неимпортированным @tableName.
  • Глобальная конфигурация требует ручного добавления MP по умолчанию класса внедрения, изменить на автоматическую инъекцию для упрощения конфигурации.
  • Wrapper добавить метод ne.
  • Устранить проблему Mybatis с динамическими параметрами, которые не могут генерировать totalCount.
  • Структурировать код, оптимизировать шаблоны генератора.
  • Решить проблемы [138, 140, 142, 148, 151, 152, 153, 156, 157], подробности см. в разделе «Milestones» на странице проекта mybatis-plus 2.0.1.

v2.0.0 от 11 декабря 2016 года

  • Поддержка глобального верхнего регистра именования.
  • Автоматическая оптимизация разбивки на страницы Count.
  • Оптимизация существующей глобальной конфигурации.
  • Оптимизация глобального механизма проверки.
  • Генератор кода оптимизирован (ранее был жёстко закодирован, теперь используется шаблонная форма).
  • Оптимизация внедрения универсального метода ByMap.
  • Добавить автоматический выбор типа базы данных.
  • Улучшение SqlExplainInterceptor (самостоятельно определять, что версия MySQL ниже 5.6.3 не поддерживает этот перехватчик, и пропускать его).
  • Устранение проблемы с многократным экранированием специальных символов.
  • Оптимизация существующего EntityWrapper, добавление родительского класса Wrapper и условия цепочки запросов.
  • Класс Wrapper позволяет методу LIKE работать с различными базами данных.
  • Оптимизация использования журнала, использование встроенного журнала Mybatis для вывода информации.
  • Решение проблемы, когда кэш приводит к невозможности подсчёта значения Count при использовании разбиения на страницы.
  • Решение PerformanceInterceptor заменяет ?, что приводит к неточным результатам печати SQL, а также добавление форматирования SQL.
  • Добавление поддержки различных баз данных, см. DBType.
  • Добавлена стратегия проверки для полей строкового типа (автоматическое определение того, является ли строка пустой или нет, а также проверка на пустую строку).
  • Wrapper добавляет классы, подобные QBC (например, eq, gt, lt и т. д.).
  • Поддерживает режим AR (необходимо наследовать Model).
  • Объединить все Selective универсальные методы (например: удалить предыдущий insert и переименовать предыдущий insetSelective в insert).
  • Решает проблему, когда sql-декодер удаляет --.
  • Поддержка ключевых слов MySQL, автоматическое экранирование.
  • Сокращение структуры Service и Mapper.
  • Не нравится писать SQL в XML, новый способ выполнения SQL, подробности см. SqlQuery.
  • Оптимизация структуры кода.
  • Решены проблемы [95, 96, 98, 100, 103, 104, 108, 114, 119, 121, 123, 124, 125, 126, 127, 128, 131, 133, 134, 135], подробности см. в разделе Milestones на странице проекта Mybatis-Plus 2.0.

v1.4.9 от 28 октября 2016 г.

  • Удалить аннотацию @Transactional из ServiceImpl и зависимость Slf4j.
  • При использовании EntityWrapper для запроса, если параметр является специальным символом, существует проблема внедрения SQL.
  • Отрегулировать порядок конфигурации Mybatis, MybatisPlus > Mybatis.
  • Оптимизировать плагин разбиения на страницы и устранить проблему переполнения разбиения на страницы, которая не работает.
  • Удалить DBKeywordsProcessor, добавить автоматическое экранирование ключевых слов MySQL.
  • Код генератора добавляет поддержку TEXT, TIME, TIMESTAMP.
  • Новый метод пакетной вставки.
  • Генерация кода контроллера слоя.
  • Изменить часть списка параметров List на Collection в коде генератора.
  • Оптимизация кода генератора поддерживает resultMap.

v1.4.8 от 12 октября 2016 г.

  • ВставитьOrUpdate добавить проверку пустой строки первичного ключа.
  • Поддержка конфигурации Mybatis native camelCase.
  • Поддержка TableField FieldStrategy аннотации для глобальной настройки.
  • Методы SelectOne и SelectCount поддерживают способ EntityWrapper.
  • Oracle код генератора поддерживает Integer Long Dobule тип различения.
  • Исправлена ошибка INSERTUPDATE метода Bug.
  • EntityWrapper IN добавляет поддержку изменяемого массива.
  • Базовый Mapper и Servcie универсальный метод PK параметр изменён на Serializable.
  • Когда результат выбора одного не уникален, добавьте предупреждение (необходимо включить режим журнала warn).
  • BaseService добавляет logger, подкласс напрямую вызывает logger без повторного определения (требуется зависимость slf4j).

v1.4.7 от 27 сентября 2016 г.

  • Первичный ключ аннотации I заменён на PK для облегчения понимания, удаление mapper аннотаций.
  • Плагин производительности, специальная обработка $ содержимого.
  • Добавьте примечание о автоматической отправке транзакции, новое тестирование транзакций.
  • Поддержка resultMap для сопоставления результатов сущности.
  • Увеличение #TableField (el = "") выражения, когда поле является объектом, можно использовать #{объект. атрибут} для сопоставления с данными таблицы и тестирования.
  • Новая поддержка typeHanler для каскадных запросов.
  • Новое перечисление для проверки стратегии поля.
  • Генератор кода поддерживает настройку модели построения сущности.
  • Генератор кода добавляет поддержку генерации констант сущности.
  • CRUD добавляет метод insertOrUpdate.
  • Решите проблему с MessageFormat.format, форматируя ошибки SQL с числовыми типами.
  • EntityWrapper добавляет поддержку EXISTS, IN, BETWEEN AND.
  • Поддержка json enum типа mysql5.7+, генерация кода.
  • Без XML всё ещё можно внедрить методы CRUD.
  • Измените порядок загрузки исходного файла конфигурации Mybatis.

v1.4.6 от 5 сентября 2016 г.

  • Новый @TableId аннотация пропускает внедрение SQL.
  • Поддержка вставки объектов без аннотации @TableId не выполняет заполнение.
  • xxxByMap поддерживает null запросы.

v1.4.5 от 28 августа 2016 г.

  • Новые функции автоматического горячего обновления XML.
  • Автоматически обрабатывать параметры MessageFormat Params типа String в EntityWrapper методе.
  • Новые общие поля таблиц автоматически заполняются.

v1.4.4 от 25 августа 2016 г.

  • Все условия класса методов EntityWrapper могут передавать нулевые параметры, и эти условия не будут добавлены в SQL-запрос.
  • TSQLPlus переименован в TSqlPlus, чтобы соответствовать общему названию.
  • Ошибка исправлена: ключевые слова MySQL будут преобразованы с помощью ``, добавлена возможность настраивать расширение файла при создании XML-файла.
  • Перед закрытием ресурса проверьте, не является ли он пустым, чтобы избежать ошибок SQL, вызванных пустыми указателями, и увеличьте выбор current>pages.
  • Реализация последовательности TSQL и связанные классы поддерживают сериализацию dubbo.
  • Добавлено автоматическое обновление Mybatis plug-in.
  • Ключевые слова order и key в базе данных и другие ключевые слова экранируются операциями curd.

v1.4.3 от 23 августа 2016 г.

  • Оптимизация последовательности генерации для ситуаций, когда невозможно получить mac.
  • Обработка ID пустой строки, автоматическое заполнение.
  • Преобразование всех прописных букв в свойства нижнего регистра.
  • Метод условий EntityWrapper соответствует стандарту синтаксиса T-SQL.
  • Тестирование зависимостей обновления 1.4.3.

v1.4.0 от 17 августа 2016 г.

  • Увеличить настраиваемый выбор результата, оптимизировать разбиение на страницы.
  • Функции не рассматриваются, поля удаляются для оптимизации.
  • Новый delete update запрещает выполнение перехвата всей таблицы.

v1.3.9 от 9 августа 2016 г.

  • Исправлены ошибки.
  • Проблема с вставкой карты устранена.
  • Вставка карты не обрабатывается и возвращается как есть.
  • Оптимизация генератора IdWorker.
  • Поддержка пользовательского LanguageDriver.
  • Поддержка генерации кода пользовательских классов.
  • Обновление зависимости mybatis 3.4.1.

v1.3.6 от 28 июля 2016 г.

  • Поддержка глобальных настроек полей таблицы с подчёркиванием.
  • Новый пользовательский метод внедрения SQL.
  • Разбиение на страницы оптимизировано, и общее количество записей равно 0, что не приводит к выполнению запроса списка.
  • Автоматический базовый атрибут генерации XML добавляет обработку AS.
  • Поле поддержки подзапроса.

v1.3.5 от 24 июля 2016 г.

  • SimpleDateFormat небезопасен для решения проблем.
  • Ошибки разбиения на страницы oracle исправлены.
  • Проблемы с генерацией TIMESTAMP oracle исправлены. - Отрегулировать порядок загрузки SQL: XMLSQL > CURDSQL.
  • Поддерживать вторичное кэширование CURD.
  • Добавить тестирование кэша и тестирование специальных символов.

[v1.2.15] 2016.04.27

  • Добавлена поддержка автоматического создания кода для Oracle, а также тестирования функций.
  • Добавлен UUID-стратегии.
  • Демонстрация демо: нажмите spring-wind.
  • Теперь поддерживается подсчёт количества запросов для одной таблицы.

[v1.2.12] 2016.04.22

  • В слой сервиса добавлена поддержка универсальных идентификаторов (ID) и автоматическое создание оптимизированного кода.
  • MyBatis обновлён до версии 3.4.0, MyBatis-Spring — до версии 1.3.0.

[v1.2.11] 2016.04.18

  • Добавлено пакетное обновление, поддерживается пакетная обработка Oracle.
  • Убрано, перенесено в spring-wind: документы.
  • Поддержка JDK1.5: изменение описания param.
  • Добавление типа базы данных.

[v1.2.9] 2016.04.10

  • EntityWrapper: добавлен конструктор без order by.
  • MailHelper: перегрузка метода sendMail.
  • CommonMapper теперь поддерживает String как первичный ключ ID.
  • Метод selectList разделён на два метода: selectList и selectPage.
  • Оптимизация генератора кода: добавлены документы и другие улучшения.

[v1.2.8] 2016.04.02

  • Улучшена генерация кода: обработка полей с заглавными буквами, автоматическое создание файлов сущностей, мапперов и сервисов.
  • Улучшение логики разбиения на страницы при выходе за пределы индекса, добавлено пять методов операций CRUD.
  • Открыт шаблонный движок: метод getHtmltext.
  • Оптимизирована конфигурация отправки электронной почты: добавлены пояснения в документах.
  • Добавлены документы и другие изменения.

[v1.2.6] 2016.03.29

  • Сервисный уровень: оптимизация кода, разделение методов list и page.
  • Разбиение на страницы: оптимизация SQL-запроса count.
  • Улучшен класс почтовых инструментов.
  • Расширена поддержка фреймворка для Spring.
  • Добавлены документы и прочие изменения.

[v1.2.5] 2016.03.25

  • Независимая поддержка универсального идентификатора (ID) в baseMapper.
  • Более совершенный инструмент автоматической генерации.
  • Поддержка сортировки объектов.
  • Доработка плагина разбивки на страницы.
  • Извлечение поддержки универсальных ключей (ID) из сервиса.

[v1.2.2] 2016.03.14

  • Использование аннотаций для различения AUTO (автоматическое увеличение базы данных), ID_WORKER (автоматическое заполнение пользовательского уникального идентификатора), INPUT (ручной ввод).
  • Оптимизация кода и функций генератора.
  • Прочие изменения.
1
https://api.gitlife.ru/oschina-mirror/baomidou-mybatis-plus.git
git@api.gitlife.ru:oschina-mirror/baomidou-mybatis-plus.git
oschina-mirror
baomidou-mybatis-plus
baomidou-mybatis-plus
3.0