Добавлена аннотация @EnableTimeSuffix для поддержки добавления времени в конец имени таблицы (версия 1.5.0.RELEASE).
issues/I3PRVK: Добавлена аннотация @IgnoreUpdate для указания, что текущий столбец участвует в создании, но не участвует в обновлении, что решает проблему постоянного обновления поля при каждом запуске проекта с использованием аннотации @DefaultValue("CURRENT_TIMESTAMP") (версия 1.5.0.RELEASE).
issues/I3NGD2: Добавлена аннотация @IgnoreTable для отключения создания таблицы для конкретной модели (версия 1.5.0.RELEASE).
issues/I3TNMB: Устранена ошибка при использовании аннотации @ColumnComment вместе с плагином многостандартного режима в MyBatisPlus (версия 1.5.0.RELEASE).
Добавлена аннотация @IsNativeDefValue с диапазоном значений true или false. На основе 64 записей в журнале обновлений предыдущей версии, система автоматически определяет тип данных для использования значения DEFAULT как нативного. В данном случае добавлена аннотация для возможности ручной спецификации, что увеличивает гибкость (версия 1.4.7.RELEASE).
Добавлены два конфигурационных параметра, позволяющие самостоятельно указывать префикс для создаваемых индексов и уникальных ограничений. При отсутствии указания используются значения actable_idx_ и actable_uni_ соответственно.
actable.index.prefix=собственный определённый префикс индекса
actable.unique.prefix=собственный определённый префикс уникального ограничения
float
и double
равно 2; если явно указать 0, то это значение игнорируется. После исправления количество знаков после запятой по умолчанию равно 0, а явно указанное значение применяется (версия 1.4.5.RELEASE).CURRENT_TIMESTAMP
. Теперь это поддерживается, и значение будет выбрано в зависимости от типа поля. В настоящее время для String
и Boolean
используется способ передачи строковых параметров в виде #{}
, а для других типов данных используется оригинальный способ конкатенации SQL в виде ${}
(версия 1.4.6.RELEASE).Исправление бага, @Column.isNotNull() и @javax.persistence.Column(nullable = false)
@TableEngine
и @TableCharset
.Добавлен новый тип данных для упаковки данных short, удалена поддержка типа byte.
Исправление ошибки при установке значения по умолчанию для типа bit
: при запуске постоянно выводятся логи изменения этого поля. При использовании @Column.comment
значение по умолчанию становится недействительным (версия 1.4.0.RELEASE, данная версия несовместима с предыдущими версиями и требует небольших изменений в коде, рекомендовано осторожно обновляться).
Исправление ошибки при использовании стандартного типа поля: можно использовать @Column.length
и @Column.decimalLength
для конфигурирования длины (версия 1.4.0.RELEASE, данная версия несовместима с предыдущими версиями и требует небольших изменений в коде, рекомендовано осторожно обновляться).
Добавлены два атрибута length
и decimalLength
к @ColumnType
для конфигурирования длины данного типа (версия 1.4.0.RELEASE, данная версия несовместима с предыдущими версиями и требует небольших изменений в коде, рекомендовано осторожно обновляться).
Улучшена аннотация @Column.type
и аннотация @ColumnType.value
, тип данных изменён с String
на enum
, используемый enum
— MySqlTypeConstant
(версия 1.4.0.RELEASE, данная версия несовместима с предыдущими версиями и требует небольших изменений в коде, рекомендовано осторожно обновляться).Улучшены аннотации @TableCharset.value и @TableEngine.value, тип данных изменён с String на enum, используемые enum — MySqlCharsetConstant и MySqlEngineConstant (версия 1.4.0.RELEASE, данная версия несовместима с предыдущими версиями и требует небольших изменений в коде, рекомендовано осторожно обновляться).Исправлена ошибка при использовании типа данных Long для идентификатора: возникают ошибки при сохранении и обновлении методами BaseCRUDManagerImpl (версия 1.4.0.RELEASE, данная версия несовместима с предыдущими версиями и требует небольших изменений в коде, рекомендовано осторожно обновляться).
Улучшено внедрение поддержки mybatis-plus для более гибкого управления CRUD операциями, поддерживаются аннотации @TableName/@TableField/@TableId (версия 1.4.0.RELEASE, данная версия несовместима с предыдущими версиями и требует небольших изменений в коде, рекомендовано осторожно обновляться).
Удалены аннотации @LengthCount и @LengthDefault (версия 1.4.0.RELEASE, данная версия несовместима с предыдущими версиями и требует небольших изменений в коде, рекомендовано осторожно обновляться).
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
Итерация версии 1.3.1.RELEASE
AC.Table сосредоточен на автоматическом обновлении и создании таблиц, что делает его недостаточно эффективным в отношении общих CUDR операций. Чтобы избежать повторной реализации одних и тех же решений, основные изменения этого выпуска заключаются в том, чтобы по умолчанию использовать tk.mybatis и поддерживать аннотации javax.persistence Column/Table/Id и т.д.
Поддерживает использование аннотаций javax.persistence Column/Table/Id для создания и обновления таблиц (версия 1.3.0.RELEASE):
Введенная поддержка tk.mybatis позволяет более гибко выполнять CUDR операции, но действует только при использовании аннотаций javax.persistence Column/Table/Id и т.д.; если используются аннотации actable, то поддерживаются только BaseCRUDManager (версия 1.3.0.RELEASE).
Добавлена поддержка типа данных JSON (версия 1.3.0.RELEASE).
Добавлена аннотация @ColumnComment для поля с комментариями, которая заменяет поле comment в аннотации @Column (версия 1.3.0.RELEASE).
Добавлена аннотация @DefaultValue для поля со значением по умолчанию, которая заменяет поле defaultValue в аннотации @Column (версия 1.3.0.RELEASE).6. Добавлена аннотация @ColumnType
для поля со значением типа столбца, которая заменяет поле type
в аннотации @Column
. Значения берутся из констант MySqlTypeConstant
(версия 1.3.0.RELEASE).
Добавлена аннотация @TableComment
для конфигурирования комментариев таблицы, которая может заменять поле comment
в аннотации @Table
(версия 1.3.0.RELEASE).
Итерация issues/I1LUAZ: исправление поля объекта с несколькими прописными буквами; при конвертации в имя столбца преобразуется только первый символ подчеркивания; добавлена поддержка преобразования метки @Table в camelCase; если имя таблицы не указано, используется camelCase имени класса (версия 1.2.1.RELEASE).
При создании таблицы и указании полей с помощью аннотации @Column
, если имя поля не указано, то по умолчанию будет использоваться имя свойства, которое преобразуется в нижний регистр согласно правилам camelCase. Например, loginName
будет преобразован в login_name
как имя столбца. Если нет camelCase (все буквы маленькие), то имя свойства используется как имя столбца. Если имя явно указано в аннотации Column(name = "LOGIN_NAME")
, то по умолчанию имя столбца будет преобразовано в нижний регистр, то есть login_name
. Таким образом, все имена столбцов будут принудительно преобразованы в нижний регистр (версия 1.2.0.RELEASE, данная версия несовместима с проектами, использующими большие буквы при создании имен столбцов).
Устранена проблема, связанная с ошибками при попытке изменения имени поля после завершения создания ограничения индекса (версия 1.2.0.RELEASE, данная версия несовместима с проектами, использующими большие буквы при создании имен столбцов).
Для предотвращения путаницы при конфигурации информации (версия 1.2.0.RELEASE, данная версия несовместима с проектами, использующими большие буквы при создании имен столбцов):
mybatis.table.auto
стало actable.table.auto
,
mybatis.model.pack
стало actable.model.pack
,
mybatis.database.type
стало actable.database.type
.35. Устранена проблема, связанная с отсутствием чтения информации о полях из наследуемых классов при создании таблицы (версия 1.2.0.RELEASE, данная версия несовместима с проектами, использующими прописные буквы при создании имен столбцов).
Итерация issues/I1JC91: Добавление в базовый менеджер CRUD BaseCRUDManager поддержки пагинационного запроса, а также двух новых методов поиска, один из которых принимает сущность со встроенными полями пагинации, другой — передачу полей пагинации через параметры метода (версия 1.1.1.RELEASE).
Список новых методов в базовом менеджере CRUD BaseCRUDManager представлен ниже, подробное описание интерфейсов находится в конце документа:
PageResultCommand search(T t, Integer currentPage, Integer pageSize, LinkedHashMap<String, String> orderBy);
PageResultCommand search(T t);
Итерация issues/I1IVXK: Устарел класс BaseMysqlCRUDManager
, пожалуйста, не используйте его. Введен новый класс BaseCRUDManager
. В новой версии метод insert
больше не ограничивает тип ключа первичного ключа целым числом; теперь тип ключа первичного ключа может быть выбран произвольно (версия 1.1.0.RELEASE).
Список методов нового класса BaseCRUDManager
представлен ниже, подробное описание интерфейсов находится в конце документа:
<T> List<T> select(T t);
<T> T selectByPrimaryKey(T t);
<T> List<T> selectAll(Class<T> clazz);
<T> int selectCount(T t);
<T> T selectOne(T t);
<T> int delete(T t);
<T> int deleteByPrimaryKey(T t);
<T> boolean existsByPrimaryKey(T t);
<T> T insert(T t);
<T> T insertSelective(T t);
<T> boolean updateByPrimaryKey(T t);
<T> boolean updateByPrimaryKeySelective(T t);
<T> List<T> query(String sql, Class<T> beanClass);
List<LinkedHashMap<String, Object>> query(String sql);
Здесь clazz
— это Class<T>
и используется для выбора всех записей определенного типа.
Исправление проблем issues/I160LP:drop (версия 1.0.9.1.RELEASE)
Оптимизация проблемы issues/I1IENW:@Index,@Unique — реализация логики создания индексов и уникальных ограничений; по умолчанию будет добавлен префикс actable_idx_
и actable_uni_
для имени индекса и ограничения соответственно, что позволяет при обновлении или удалении учитывать только эти префиксы, чтобы избежать случайного удаления индексов или ограничений, созданных вручную (версия 1.0.9.1.RELEASE).
Исправление проблемы issues/I16OZQ::@Index,@Unique — когда указано только имя индекса, а не поля индекса, возникает ошибка; также существующее поле name
переименовано в value
, а value
— в columns
(версия 1.0.9.1.RELEASE).
Улучшение проблемы issues/I1IF5E: добавление поддержки типов данных tinyint
, smallint
, mediumint
, year
, blob
, longblob
, mediumblob
, tinytext
, tinyblob
, binary
(версия 1.0.9.1.RELEASE).
Улучшение проблемы issues/I1IF5Q: добавление режима add
в рамках фреймворка, который обеспечивает возможность создания новых таблиц, полей, индексов и уникальных ограничений, но не выполняет операции модификации или удаления (версия 1.0.9.1.RELEASE).
Улучшение проблемы issues/I193FC: свойство name
метки @Column
сделано необязательным; если значение не указано, используется имя свойства как имя столбца таблицы (версия 1.0.9.1.RELEASE).Улучшение проблемы issues/I193FC: свойство type
метки @Column
сделано необязательным; если значение не указано, используется тип данных свойства для конвертации. Поля, которые не могут быть сконвертированы, не будут добавлены (версия 1.0.9.1.RELEASE).Поддержка преобразования типов Java в MySQL:
java.lang.String
java.lang.Long
java.lang.Integer
java.lang.Boolean
java.math.BigInteger
java.lang.Float
java.lang.Double
java.math.BigDecimal
java.sql.Date
java.util.Date
java.sql.Timestamp
java.sql.Time
Эта версия до 1.0.9.1.RELEASE значительно упростила использование аннотаций, сохранив возможности сложной настройки, при этом увеличив количество возможностей по умолчанию. То есть, если нет требований к названию полей и другим параметрам, можно использовать аннотацию без указания типа и других параметров; система автоматически выберет подходящий тип из списка поддерживаемых.
Улучшение проблемы issues/I1ILS6: добавление меток @IsKey/@IsAutoIncrement/@IsNotNull для замены свойств isKey/isAutoIncrement/isNull метки @Column, конечно старый способ конфигурации всё ещё поддерживается (версия 1.0.9.1.RELEASE).
Исправление issues/IZ6WQ: установка значения по умолчанию для типа bit не проходит; значение по умолчанию может быть 0, 1, true, false (версия 1.0.8.1.RELEASE).
Исправление issues/IYTJ1: использование @Unique
для составных ограничений; после автоматического создания структуры таблиц при запуске проекта, удаление составного ограничения вызывает ошибку (версия 1.0.8.1.RELEASE).
Итерация issues/IYW9F: поддержка mybatis.model.pack для сканирования нескольких пакетов, разделённых "," или ";" (версия 1.0.8.1.RELEASE).
Исправление основного ключа, который остаётся основным ключом; при изменении других свойств этого поля возникает ошибка multiple primary key defined (например, если id имеет тип int(11), после изменения на int(10) можно воспроизвести эту ошибку) (версия 1.0.7.RELEASE).
Добавлена поддержка заметок для полей с использованием атрибута comment аннотации @Column (версия 1.0.7.RELEASE).
Удаление старого способа реализации уникального ограничения в @Column
(версия 1.0.6.RELEASE).
Добавлен новый способ реализации уникального ограничения с использованием @Unique
, который поддерживает объединённые ограничения нескольких полей (версия 1.0.6.RELEASE).
Добавлен новый способ создания индексов с использованием @Index
, который поддерживает объединённые индексы нескольких полей (версия 1.0.6.RELEASE).
Исправлена ошибка, при которой методы запроса query
не могут вернуть данные полей родительского класса (версия 1.0.6.RELEASE).