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

OSCHINA-MIRROR/troyzhxu-bean-searcher

04.03.2025 10:27
GitLife Service Account

✨ Улучшения

  • Bean Searcher
    • Оптимизация логики генерации SQL: когда в аннотации @SearchBean свойство joinCond имеет только один параметр соединения и значение этого параметра пустое, то этот параметр не участвует в условии WHERE

🐛 Исправление ошибок

  • Исправлено отсутствие возможности конвертации java.sql.Date в LocalDate / LocalDateTime в классе DateFieldConverter
  • Исправлена проблема с появлением временной зоны при конвертации LocalDate / LocalDateTime в классе DateFieldConverter
  • Исправлено отсутствие форматирования java.sql.Date / java.sql.Time в классе DateFormatFieldConverter
Последнее сообщение коммита: CHANGELOG.md
04.03.2025 10:27
GitLife Service Account

✨ Возможности

  • Bean Searcher

    • Улучшение метода MapBuilder.orderBy(..), теперь поддерживаются повторные вызовы для указания сортировки по нескольким полям
    • Добавлен параметр сортировки orderBy, который позволяет указывать несколько полей для сортировки в виде строки, например orderBy=age:asc,time:desc
    • Переработка классов DefaultSqlResolver, Dialect, SqlSnippet и других связанных классов
    • Удаление метода StringUtils.firstCharToUpperCase(..)
    • В классе DefaultDbMapping добавлена новая конфигурация ignoreFields, которая позволяет игнорировать глобальные свойства
    • В аннотацию @SearchBean добавлен атрибут ignoreFields, который позволяет указать, какие свойства должны быть проигнорированы для отдельного класса (включая свойства родительского класса)
  • Bean Searcher Boot Starter

    • Добавлена конфигурация bean-searcher.sql.default-mapping.ignore-fields, позволяющая указывать глобально игнорируемые свойства в файлах конфигурации
    • Добавлена конфигурация bean-searcher.params.order-by, позволяющая указывать имя параметра для сортировки в файлах конфигурации

🌻 Лучше

  • Bean Searcher
    • Улучшение информации об ошибках
    • Улучшение деклараций аннотаций
    • Обновление библиотеки slf4j-api с версии OnClickListener 1.7.32 до 1.7.35
  • Bean Searcher Boot Starter
    • Улучшение сообщений о конфигурации
    • Обновление spring-boot с версии 2.6.2 до 2.6.3
Последнее сообщение коммита: 支持配置文件配置 orderBy 参数名
04.03.2025 10:26
GitLife Service Account

🌻 Улучшено

  • Bean Searcher
    • Улучшен BoolFieldConvertor, теперь поддерживается конвертация в направлении Boolean -> boolean.
Последнее сообщение коммита: CHANGELOG.md
04.03.2025 10:26
GitLife Service Account

✨ Возможности

  • Bean Searcher
    • MapBuilder добавлен метод op(Class<? extends FieldOp> op)
    • Улучшена DateValueCorrector, теперь можно конфигурировать поддерживаемые операторы
  • Bean Searcher Boot Starter
    • Добавлена конфигурация bean-searcher.sql.use-date-value-corrector, значение по умолчанию — true, указывает использовать ли корректор значений дат
    • Поддержка использования зависимости bean-searcher-boot-starter в проектах Grails

✨ Улучшения

  • Bean Searcher
    • Улучшено логическое соответствие полей операторов: используется строгое соответствие
    • Улучшен константный оператор Operator, который теперь может использоваться как значение атрибута @DbField.onlyOn (совместимо с предыдущими версиями, что облегчает обновление)
  • Bean Searcher Boot Starter
    • Улучшена автоматическая конфигурация, теперь она не зависит от DataSourceAutoConfiguration и бинов типа DataSource в контейнере Spring

🐛 Исправления ошибок

  • Исправлено увеличение пула FieldOpPool при множественном создании одного и того же оператора пользователями
Последнее сообщение коммита: demo: bump dept to 3.3.1
04.03.2025 10:26
GitLife Service Account

✨ Возможности

  • Bean Searcher
    • Добавлен интерфейс FieldOp, который позволяет пользователям расширять свои операторы полей
    • Добавлена возможность использования класса FieldOpPool для создания нового набора операторов полей
    • Внутренне добавлены операторы NotIn / ni и NotBetween / nb
    • Внутренний оператор MultiValue / mv переименован в InList / il (ранее существующий оператор все ещё доступен)
    • Класс DefaultDbMapping получил новое свойство redundantSuffixes, которое позволяет конфигурировать удаление лишних суффиксов из названий таблиц при автоматическом отображении сущностей (например, VO, DTO и т.д.)
    • Упрощено использование Dialect: удалены методы truncateToDateStr, truncateToDateMinuteStr и truncateToDateSecondStr
  • Bean Searcher Boot Starter
    • Добавлена конфигурация bean-searcher.sql.default-mapping.redundant-suffixes для указания нескольких лишних суффиксов
    • Поддерживается объявление Spring bean типа FieldOp для расширения новых операторов полей
    • Поддерживается объявление Spring bean типа FieldOpPool для создания нового набора операторов полей
  • Изменение лицензии на Apache-2.0
Последнее сообщение коммита: v3.3.0
04.03.2025 10:26
GitLife Service Account

🌻 Улучшения

  • Без аннотации @DbIgnore также автоматически игнорируются статические (static) и временные (transient) свойства в сущностях
  • Поддержка переопределения существующих свойств родительского класса в подклассах сущностей

🐛 Исправление ошибок

Последнее сообщение коммита: v3.2.1
04.03.2025 10:25
GitLife Service Account

✨ Возможности

  • Bean Searcher
    • Переработка FieldConvertor: удаление избыточного параметра targetType
    • Добавление EnumFieldConvertor: для конвертации полей с типом enum
    • Поддержка наследования в классах типа SearchBean (можно наследовать аннотацию @SearchBean и отображаемые поля)
    • Аннотация @SearchBean получила новый атрибут inheritType, который позволяет контролировать правила наследования
    • Класс DefaultDbMapping получил новый атрибут defaultInheritType, позволяющий настроить правила наследования для сущностей по умолчанию
    • Отображаемые поля в классах типа SearchBean поддерживают пропуск методов установки значений (setters)
    • Добавлен оператор ct (Contain), замена оператора in (Include). При использовании in выводится предупреждение.
  • Bean Searcher Boot Starter
    • Добавлен параметр конфигурации bean-searcher.field-convertor.use-enum, указывающий на автоматическое использование EnumFieldConvertor. По умолчанию установлено значение true
    • Добавлен параметр конфигурации bean-searcher.use-map-searcher, указывающий на автоматическое создание объекта MapSearcher. По умолчанию установлено значение true
    • Добавлен параметр конфигурации bean-searcher.use-bean-searcher, указывающий на автоматическое создание объекта BeanSearcher. По умолчанию установлено значение true

🌻 Улучшения

  • Bean Searcher Boot Starter
    • При внедрении типа поискового движка (searcher) теперь по умолчанию используется MapSearcher, что больше не вызывает ошибок * Улучшена совместимость, минимальная версия Spring Boot теперь поддерживается начиная с версии v1. 4+
Последнее сообщение коммита: v3.2.0
04.03.2025 10:25
GitLife Service Account

🌻 Улучшено

  • Оптимизация вызова JDBC, совместимость с sharding-jdbc
  • Оптимизация метода Operator.from(Object)
  • Оптимизация инструмента класса MapBuilder, добавлена проверка на незаполненные значения
Последнее сообщение коммита: v3.1.2
04.03.2025 10:25
GitLife Service Account

🌻 Улучшено

  • Оптимизация вызова JDBC, совместимость с sharding-jdbc
  • Оптимизация метода Operator.from(Object)
  • Оптимизация инструмента класса MapBuilder, добавлена проверка на незаполненные значения
Последнее сообщение коммита: update demo
04.03.2025 10:25
GitLife Service Account

✨ Возможности

  1. Улучшение прав доступа методов в DefaultSqlResolver, чтобы облегчить переиспользование подклассами

🐛 Исправление ошибок

  1. Улучшение правил генерации псевдонимов для совместимости с базой данных Oracle
Последнее сообщение коммита: v3.1.1
04.03.2025 10:24
GitLife Service Account

✨ Возможности

  1. Улучшение прав доступа методов в DefaultSqlResolver, чтобы облегчить переиспользование подклассами

🐛 Исправление ошибок

  1. Улучшение правил генерации псевдонимов для совместимости с базой данных Oracle
Последнее сообщение коммита: test case
04.03.2025 10:24
GitLife Service Account

✨ Возможности* Bean Searcher

  • Добавлены новые интерфейсы для конвертации полей BFieldConverter и MFieldConverter, что повышает эффективность преобразования полей
  • Добавлен новый конвертор полей DateFieldConverter, поддерживающий преобразование между типами Date и LocalDateTime
  • Улучшен конвертор форматирования полей DateFormatFieldConverter, который теперь поддерживает форматирование объектов типа Temporal и его подклассов
  • Улучшен конвертор форматирования полей DateFormatFieldConverter, добавлена возможность установки часового пояса методом setZoneId(ZoneId)
  • Улучшен исполнитель SQL запросов DefaultSqlExecutor, добавлен метод setTransactionIsolation(int level) для настройки уровня изоляции транзакций
  • Улучшен маппер баз данных DbMapping, который теперь полностью управляет процессом парсинга данных и освобождает DefaultDbMapping от зависимости от DefaultMetaResolver
  • Улучшен DefaultDbMapping, добавлена поддержка настройки префикса таблиц при использовании аннотаций по умолчанию и выбора режима использования верхнего регистра для названий таблиц и столбцов
  • Bean Searcher Boot Starter
    • Поддерживается конфигурация бинов типа NamedDataSource для добавления нескольких именованных источников данных
    • Автоматически добавляется зависимость spring-boot-starter-jdbc
    • По умолчанию автоматически добавляются конверторы полей NumberFieldConverter, StrNumFieldConverter, BoolFieldConverter, DateFieldConverter и DateFormatFieldConverter * Настройка файла конфигурации позволяет задавать по умолчанию префикс для отображаемых названий таблиц и выбирать режим использования нижнего или верхнего регистра для названий таблиц и столбцов
Последнее сообщение коммита: update demos to v3.1.0
04.03.2025 10:24
GitLife Service Account

Исправление ошибки

  • Исправлено: в версии v3.0.0 при использовании методов searchCount и searchSum отдельно возникает ошибка получения SQL-результата.
Последнее сообщение коммита: v3.0.2
04.03.2025 10:24
GitLife Service Account

Новые возможности

  • DateFormatFieldConvertor добавлен метод setFormat

Исправление ошибок

  • Исправлено: в версии v3.0.0 при отсутствии атрибута joinCond с аннотацией @SearchBean, в генерируемом SQL запросе с условиями отсутствовал один левый скобочный символ после WHERE.
Последнее сообщение коммита: v3.0.1
04.03.2025 10:24
GitLife Service Account

Возможности

  • Поддержка горячей перезагрузки
  • Поддержка без аннотаций
  • Поддержка выборки конкретных полей
  • Поддержка ограничений условий и операторов
  • Поддержка фильтров параметров
  • Поддержка конвертеров полей
  • Поддержка перехватчиков SQL
  • Поддержка множества источников данных
  • Поддержка JDK 9+#### Bean Searcher
  • Упрощение интерфейса Searcher, удаление ненужных методов (методы поиска с последним параметром типа prefix были удалены)
  • Оптимизация архитектуры: SearchBean поддерживает горячую перезагрузку; при активированной горячей перезагрузке, изменения в SearchBean могут применяться без перезапуска приложения
  • Удаление вспомогательных классов SearchPlugin и SpringSearcher, поскольку использование Bean Searcher версии OnClickListener 3.0 проще, чем использование этих вспомогательных классов
  • Упрощение класса SearchResult, удаление лишних полей, оставление только полей totalCount, dataList и summaries
  • Добавлены подинтерфейсы MapSearcher и BeanSearcher для Searcher со своими реализациями; методы поиска в MapSearcher возвращают данные типа Map, а методы поиска в BeanSearcher возвращают данные типа generics Search Bean
  • Переработана структура SearcherBuilder для более удобного создания экземпляров MapSearcher или BeanSearcher
  • Аннотация @SearchBean теперь поддерживает встраиваемые параметры свойства groupBy; если встраиваемый параметр не передается, используется пустая строка (ранее использовалась строка "null")
  • Абстрагированы интерфейсы BeanReflector и FieldConvertor, что делает механизм рефлексии объектов SearchBean более декомпозируемым и легче расширяемым
  • Добавлены четыре реализации конверторов полей: NumberFieldConvertor, StrNumFieldConvertor, BoolFieldConvertor и DateFormatFieldConvertor, которые можно использовать пользователями * Введен новый интерфейс DbMapping для отображения базы данных, предоставляется реализация на основе нижнего подчеркивания, позволяющая пользователям в простых сценариях использования пропускать аннотации @SearchBean и @DbField.
  • Аннотация @SearchBean получила новое свойство dataSource, которое позволяет указывать источник данных для этого SearchBean.
  • Аннотация @SearchBean получила новое свойство autoMapTo, которое позволяет указывать автоматическое отображение полей без аннотации @DbField на указанную таблицу.
  • Введена новая аннотация @DbIgnore, которая позволяет игнорировать некоторые поля, то есть поля с этой аннотацией не будут отображаться в базе данных.
  • Аннотация @DbField получила новые свойства conditional и onlyOn, что позволяет пользователям контролировать возможность использования данного поля в качестве условия поиска и поддерживаемые операторы полей.
  • Введен новый интерфейс ParamAware, реализация которого в SearchBean позволяет получить исходные параметры поиска в методе afterAssembly(Map<String, Object> paraMap).
  • Примечание: Все имена переменных, функций, классов и другие элементы кода остались без изменений. Добавлены параметры onlySelect и selectExclude (можно использовать свои названия), чтобы указывать, какие поля следует выбрать или исключить.
  • Добавлен интерфейс SqlInterceptor, реализующий функцию SQL-интерцептора.

Bean Searcher Boot Starter

  • Упрощено использование, теперь не требуется выполнять отдельные действия запуска и конфигурации пути пакета SearchBean (класс SearcherStarter был удалён)
  • Функционал автоматической конфигурации Spring Boot перемещён в проект Bean Searcher Boot Starter, что позволяет Bean Searcher работать без зависимости от Spring

JDK

  • Поддерживается JDK8+
  • Поддерживает механизм импорта модулей для JDK9+
Последнее сообщение коммита: CHANGELOG.md
04.03.2025 10:23
GitLife Service Account
  1. Поддержка построения параметров поиска с использованием lambda-выражений
  2. Уровень вывода логов SQL установлен на DEBUG
Последнее сообщение коммита: 优化 MapBuilder
04.03.2025 10:23
GitLife Service Account

Исправление: Проблема бесконечной рекурсии при добавлении виртуальных параметров в конец SQL-фрагмента

Последнее сообщение коммита: version: 2.1.2
04.03.2025 10:23
GitLife Service Account

Исправлена проблема с неправильной распознаваемостью второго виртуального параметра, когда они расположены слишком близко друг к другу.

Последнее сообщение коммита: 优化
04.03.2025 10:23
GitLife Service Account

Добавлена поддержка виртуальных параметров в формате :name:, значение которых будет прямо включено в SQL-запрос,而不将其作为 JDBC 参数传递。
При использовании таких параметров следует строго проверять источник значений параметров; они не должны передаваться напрямую от клиентской части, так как это может привести к риску SQL-инъекций.

Добавлена поддержка виртуальных параметров в формате :name:, значение которых будет прямо включено в SQL-запрос,而不将其作为 JDBC 参数传递。
При использовании таких параметров следует строго проверять источник значений параметров; они не должны передаваться напрямую от клиентской части, так как это может привести к риску SQL-инъекций.

Последнее сообщение коммита: fix: new virtualParam (:name:) detection
04.03.2025 10:23
GitLife Service Account
  1. Оптимизация зависимостей проекта
  2. При запуске больше не кэшируются объекты Class, что обеспечивает совместимость с некоторыми приложениями горячей перезагрузки
Последнее сообщение коммита: update doc
1
https://api.gitlife.ru/oschina-mirror/troyzhxu-bean-searcher.git
git@api.gitlife.ru:oschina-mirror/troyzhxu-bean-searcher.git
oschina-mirror
troyzhxu-bean-searcher
troyzhxu-bean-searcher