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

OSCHINA-MIRROR/troyzhxu-bean-searcher

04.03.2025 10:33
GitLife Service Account
  • Оптимизация валидации параметров класса SearchBean
  • Оптимизация доступа к внутренним членам класса DefaultDbMapping
Последнее сообщение коммита: v4.1.1
04.03.2025 10:32
GitLife Service Account

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

  • Bean Searcher

    • Улучшение: Поддержка преобразования значений параметров с помощью ParamConvertor, даже если тип поля @DbField.type равен UNKNOWN
    • Переработка: Изменение имени класса ParamResolver.Convertor на FieldConvertor.ParamConvertor. Также изменён тип входящего параметра DbType на FieldMeta.
    • Новая функциональность: В аннотацию @DbField добавлено свойство name, которое позволяет явно указывать имя параметра поля.
    • Новая функциональность: В аннотацию @DbField добавлено свойство cluster, которое позволяет явно указывать является ли поле агрегатным.
    • Новая функциональность: В аннотацию @DbField добавлено свойство mapTo, которое позволяет явно указывать таблицу, в которую поле отображается.
    • Новая функциональность: В аннотацию @SearchBean добавлено свойство fields, которое используется для указания дополнительных динамических условий полей.
    • Улучшение: Логика генерации условий полей при использовании аннотации @SearchBean.groupBy со связыванием параметров.
    • Улучшение: Уточнение логики разделения условий where и having при одновременном использовании groupBy и groupExpr.
    • Улучшение: Усиление способности автоматического упрощения логических выражений.
  • Bean Searcher Boot Starter

    • Поддерживает возможность пользовательской настройки внедрения бины через GroupPairResolver.* Bean Searcher Solon Plugin
    • Первый плагин для Solon (функциональность аналогична bean-searcher-boot-starter).

Разработчики

Благодарим всех участников, работавших над этим выпуском:

Последнее сообщение коммита: CHANGELOG.md
04.03.2025 10:32
GitLife Service Account

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

  • Bean Searcher
    • Улучшена работа конвертора полей JsonFieldConvertor, добавлено новое поле failOnError. Это позволяет настроить поведение при возникновении ошибок парсинга JSON для некоторых значений (то есть игнорировать их).
  • Bean Searcher Boot Starter
    • Добавлена конфигурация bean-searcher.field-convertor.json-fail-on-error, которая указывает, следует ли выбрасывать исключение при ошибке парсинга JSON. По умолчанию значение установлено в true.

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

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

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

  • Переработка cn.zhxu.bs.param.Operator -> cn.zhxu.bs.FieldOps

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

  • Устранение проблемы с методом MapUtils.of(..), сделав его static методом.
Последнее сообщение коммита: v4.0.0
04.03.2025 10:32
GitLife Service Account

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

  • Bean Searcher
    • Добавлен конвертор полей JsonFieldConvertor, который вместе с аннотацией @DbField(type = DbType.JSON) позволяет автоматически преобразовывать поля JSON в объекты. Для использования этого конвертора требуется добавление зависимости на библиотеку JSON (можно выбрать одну из следующих зависимостей):
      • cn.zhxu:xjsonkit-fastjson:1.4.2
      • cn.zhxu:xjsonkit-fastjson2:1.4.2
      • cn.zhxu:xjsonkit-gson:1.4.2
      • cn.zhxu:xjsonkit-jackson:1.4.2
      • cn.zhxu:xjsonkit-snack3:1.4.2
      • Пример: https://gitee.com/troyzhxu/xjsonkit
    • Добавлен конвертор полей ListFieldConvertor, который позволяет автоматически преобразовывать строки в простые объекты типа List.
    • Улучшен конвертор полей NumberFieldConvertor, теперь он поддерживает взаимное преобразование между типами BigDecimal, Integer, Long, Float, Double, Short, Byte.
    • Улучшен DefaultDbMapping, добавлена методика setAroundChar(String), которая позволяет указать символьное окружение для идентификаторов, чтобы отличать системные ключевые слова (работает только для автоматически отображаемых таблиц и полей).
    • Улучшен MapUtils, добавлены четыре удобных метода создания карт: of(k, v), of(k1, v1, k2, v2).
    • Обновлено slf4j-api до версии 2.0.6.
    • Обновлено Spring Boot до версии 3.0.2.* Bean Searcher Boot Starter
    • Добавлен параметр конфигурации bean-searcher.sql.default-mapping.around-char, который позволяет указать символьное окружение для идентификаторов (например, символ _ в MySQL).
    • Добавлен параметр конфигурации bean-searcher.field-convertor.use-json, который указывает, следует ли автоматически использовать конвертор JsonFieldConvertor. По умолчанию значение равно true.
    • Добавлен параметр конфигурации bean-searcher.field-convertor.use-list, который указывает, следует ли автоматически использовать конвертор ListFieldConvertor. По умолчанию значение равно true.
    • Добавлен параметр конфигурации bean-searcher.field-convertor.list-item-separator, который позволяет указать разделитель для преобразования строки в список.
    • Оптимизирован параметр конфигурации bean-searcher.field-convertor.date-formats, теперь поддерживаются замены символа - вместо : (так как в YAML ключах символ : может быть удален по умолчанию).
Последнее сообщение коммита: CHANGELOG.md
04.03.2025 10:31
GitLife Service Account

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

  • Bean Searcher
    • Удалены методы search(), searchFirst(), searchList() и searchAll() из интерфейса Searcher
    • Добавлены методы:
      • search(Class<T> beanClass) -> SearchResult
      • search(Class<T> beanClass, String summaryField) -> SearchResult
      • search(Class<T> beanClass, String[] summaryFields) -> SearchResult
      • search(Class<T> beanClass, FieldFns.FieldFn<T, ?> summaryField) -> SearchResult
      • search(Class<T> beanClass, Map<String, Object> paraMap, String summaryField) -> SearchResult
      • search(Class<T> beanClass, Map<String, Object> paraMap, FieldFns.FieldFn<T, ?> summaryField) -> SearchResult
    • Добавлены методы:
      • searchFirst(Class<T> beanClass) -> T / Map<String, Object>
      • searchList(Class<T> beanClass) -> List<T> / List<Map<String, Object>>
      • searchAll(Class<T> beanClass) -> List<T> / List<Map<String, Object>>
      • searchCount(Class<T> beanClass) -> Number
      • searchSum(Class<T> beanClass, String field) -> Number
      • searchSum(Class<T> beanClass, String[] fields) -> Number[]
      • searchSum(Class<T> beanClass, FieldFns.FieldFn<T, ?> field) -> Number
      • searchSum(Class<T> beanClass, Map<String, Object> paraMap, FieldFns.FieldFn<T, ?> field) -> Number
Последнее сообщение коммита: v4.0.0.alpha2
04.03.2025 10:31
GitLife Service Account
  • Bean Searcher
    • Maven координаты groupId изменены -> ru.kizoo
    • Изменение имени пакета: com.ejlchina.searcher -> ru.kizoo.bs
    • Удаление устаревших API: свойство joinCond аннотации @SearchBean
    • Оптимизация встроенных параметров: повышение совместимости, поддержка встроенных параметров после которых следует символ .
    • При условии что поле является числом, но переданный параметр не является числом, сразу вернуть пустой набор данных
    • Аннотация @SearchBean получила новое свойство timeout, которое используется для контроля максимальной длительности выполнения медленных запросов SQL
    • При использовании группировки с помощью groupBy и логической группировки, если все переданные параметры находятся внутри groupBy, использовать условия в виде where: https://github.com/kizoo/bean-searcher/issues/issue-number
  • Bean Searcher Boot Starter
    • Поддерживает Spring Boot 3
Последнее сообщение коммита: v4.0.0.alpha1
04.03.2025 10:31
GitLife Service Account

Содержание может содержать违规信息

Поскольку в данном случае есть только одно предложение на китайском языке, которое требуется перевести на русский язык, то результат будет следующим:

Содержание может содержать незаконную информацию.

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

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

  • Улучшение аннотации @SearchBean: добавлено свойство having, которое позволяет указывать условия группировки
  • Улучшение аннотации @DbField: добавлено свойство type, позволяющее пользователям вручную указывать тип поля базы данных, связанного с этим свойством
  • Улучшение ParamResolver: добавлен конвертор параметров Converter, который может преобразовать тип значения параметра поиска в тип поля базы данных для лучшей совместимости с базами данных типа Oracle, PostgreSQL и т. д.
  • Добавлены конверторы параметров BoolParamConvertor, NumberParamConvertor, DateParamConvertor, TimeParamConvertor и DateTimeParamConvertor
  • Добавлен оператор сравнения NotLike (nk): https://github.com/ejlchina/bean-searcher/issues/50
  • Улучшение FieldOp.OpPara: добавлена методика getFieldSql(String field), которая позволяет пользователю создавать пользовательскую логику получения информации о других полях внутри оператора
  • Улучшение DefaultDbMapping: если значение аннотации @SearchBean.tables представляет собой одну таблицу, то отсутствие некоторых свойств автоматически приведёт к правильному отображению
  • Улучшение механизма создания параметров: добавлен метод sql(...), который позволяет использовать пользовательское условие SQL: https://github.com/ejlchina/bean-searcher/issues/51 * Введение механизма "корневого параметра" (представленного символом $, который используется для представления корневой группы, а пользовательские группы не могут содержать этот символ); механизм создания параметров использует по умолчанию корневой параметр
  • Переработка FieldConvertor: девять реализованных классов конвертора полей перемещены из пакета com.ejlchina.searcher.implement в пакет com.ejlchina.searcher.convertor
  • Переработка DialectWrapper: перемещено из пакета com.ejlchina.searcher.implement в пакет com.ejlchina.searcher.dialect
  • Переработка аннотации @SearchBean: добавлено свойство where, заменившее старое свойство joinCond, а само свойство joinCond помечено как устаревшее
  • Удаление DateValueCorrector, заменено на DateParamConvertor и DateTimeParamConvertor
  • Удаление NullValueFilter и BoolValueFilter (заменено на BoolParamConvertor)
  • Оптимизация механизма генерации динамических условий группировки: https://github.com/ejlchina/bean-searcher/issues/56
  • Оптимизация сообщений об ошибках
  • Bean Searcher Boot Starter
    • Поддержка конфигурирования одного ParamResolver.Convertor как Spring Bean для расширения способностей преобразования значений параметров
    • Удаление конфигурационной опции bean-searcher.sql.use-date-value-corrector
    • Обновление spring-boot до версии v2.6.9
Последнее сообщение коммита: v3.8.0
04.03.2025 10:30
GitLife Service Account

✨ Улучшения

  • Bean Searcher
    • Улучшение конструктора параметров: Добавлены методы orderBy(FieldFn<T, ?> fieldFn), orderBy(String fieldName), asc() и desc().
    • Улучшение конструктора параметров: Поддержка передачи строки в виде "age,name" с разделителями запятой для методов onlySelect(...) и `selectExclude(...).
  • Bean Searcher Boot Starter
    • Улучшение: При добавлении пользовательского фильтра параметров, внутренний фильтр параметров не перезаписывается.
Последнее сообщение коммита: CHANGELOG.md
04.03.2025 10:30
GitLife Service Account

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

  • Bean Searcher
    * Добавлено реализация диалекта SqlServerDialect, поддерживающего Microsoft SQL Server 2012+
    * Добавлен оператор OrLike, см.: https://github.com/ejlchina/bean-searcher/issues/38
    * Улучшено SqlExecutor: добавлен интерфейс SlowListener, позволяющий пользователям слушать медленные SQL запросы в коде
    * Улучшено DefaultDbMapping: добавлена конфигурация свойства underlineCase, которое позволяет включить преобразование стилей camelCase -> snake_case
    * Улучшено Dialect: добавлен метод hasILike(), который повышает производительность запросов при игнорировании регистра с помощью ключевых слов базы данных ilike
    * Улучшено EnumFieldConvertor: поддержка преобразования целых чисел в перечисления (по номеру перечисления)
    * Улучшено EnumFieldConvertor: добавлено свойство failOnError, которое позволяет указывать, следует ли выбрасывать ошибку при невозможности преобразования незаконных значений; значение по умолчанию — true
    * Улучшено EnumFieldConvertor: добавлено свойство ignoreCase, которое позволяет указывать, следует ли игнорировать регистр при сравнении строковых значений с перечислениями; значение по умолчанию — false
    * Оптимизация журналирования SQL: обычные SQL запросы отображают время выполнения, журналы медленных SQL запросов уровня WARN теперь содержат связанные сущности
    * Оптимизация DefaultSqlExecutor: если выполняется запрос COUNT SQL и результат равен 0, то запрос LIST SQL больше не выполняется
    * Оптимизация методов page(...)иlimit(...)параметризатора: начальные страницы также ограничены конфигурацией страниц (***разрушительное обновление***) * ОптимизацияDialect: добавлено стандартное реализование для toUpperCase(...), пользователи могут переопределять только один метод forPaginate(...) * ОптимизацияDefaultParamResolver: используется параметризатор pageпо умолчанию * Оптимизацияcountиsumзапросов: если нет записей для подсчета, возвращается0вместоnull, а также повторная оптимизация производительности * Переименован FetchType#ALLвFetchType#DEFAULT`
  • Bean Searcher Boot Starter
    • Добавлен ключ конфигурации bean-searcher.sql.slow-sql-threshold, который позволяет установить пороговое значение времени выполнения медленных SQL запросов (в миллисекундах), значение по умолчанию — 500
    • Добавлен ключ конфигурации bean-searcher.default-mapping.underline-case, который позволяет включить преобразование стилей camelCase -> snake_case при автоматическом отображении, значение по умолчанию — true
    • Добавлен ключ конфигурации bean-searcher.field-convertor.enum-fail-on-error, который позволяет указывать, следует ли выбрасывать ошибку при невозможности преобразования незаконных значений, значение по умолчанию — true
    • Добавлен ключ конфигурации bean-searcher.field-convertor.enum-ignore-case, который позволяет указывать, следует ли игнорировать регистр при сравнении строковых значений с перечислениями, значение по умолчанию — false * Поддерживается возможность конфигурирования одного SqlExecutor.SlowListener Spring Bean для прослушивания медленных SQL-запросов.*
  • Поддержка конфигурации пользователем bean-searcher.sql.dialect как SqlServer для использования диалекта SQL Server.*
  • Обновление spring-boot до версии v2.6.8.
Последнее сообщение коммита: CHANGELOG.md
04.03.2025 10:29
GitLife Service Account

🐛 Устранение ошибок

  • Устранена проблема с возникновением ошибки NoSuchMethodError, когда в классах-сущностях присутствуют поля типа LocalDate в JDK8: https://github.com/ejlchina/bean-searcher/issues/43
Последнее сообщение коммита: CHANGELOG.md
04.03.2025 10:29
GitLife Service Account

✨ Улучшено

  • Bean Searcher Boot Starter: Обновлено spring-boot -> 2.6.7
Последнее сообщение коммита: v3.6.2
04.03.2025 10:29
GitLife Service Account

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

  • Bean Searcher
    • Добавлен конвертор полей BoolNumFieldConvertor: поддерживает преобразование в направлении Boolean -> Number
    • Улучшен SearcherBuilder, добавлен метод addResultFilter(...)
  • Bean Searcher Boot Starter
    • Добавлен ключ конфигурации bean-searcher.field-convertor.use-bool-num, который позволяет автоматически настроить BoolNumFieldConvertor. По умолчанию значение этого ключа равно true

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

  • Исправлена проблема с методами page(...) и limit(...) в MapUtils.builder(...), которая позволяла им игнорировать ограничение конфигурации max-allowed-size
Последнее сообщение коммита: TestCase
04.03.2025 10:29
GitLife Service Account

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

  • Поддержка экранирования символов : в SQL-фрагментах аннотации @SearchBean в сущностях: \\:
  • В аннотацию @SearchBean сущностей добавлен атрибут orderBy, который позволяет указывать поля для сортировки по умолчанию
  • В аннотацию @SearchBean сущностей добавлен атрибут sortType, который позволяет указывать тип ограничений сортировки
  • При указании атрибута groupBy в аннотации @SearchBean сущностей поддерживается запрос суммы полей
  • Добавлена новая механика ResultFilter для поисковых движков, позволяющая пользователям выполнять дальнейшую настройку результатов поиска
  • Добавлен новый диалект PostgreSqlDialect, который может использоваться для баз данных PostgreSQL
  • Переработана структура SqlResult, отвязана от JDBC, что облегчает использование других ORM для переопределения SqlExecutor
  • Переработана структура SqlInterceptor, метод intercept(...) которого теперь принимает параметр типа FetchType
  • Добавлен конвертор B2MFieldConvertor, который позволяет использовать BFieldConvertor для поискового движка MapSearcher
  • Удалён метод addDataSource(...) из класса DefaultSqlExecutor, этот метод был помечен как устаревший начиная с версии v3.0.0
  • Удалён метод addFormat(...) из класса DateFormatFieldConvertor, этот метод был помечен как устаревший начиная с версии v3.0.1
  • При использовании оператора in/Include выводится предупреждение, рекомендующее использовать оператор ct/Contain * При использовании оператора mv/MultiValue выводится предупреждение, рекомендующее использовать оператор il/InList* Bean Searcher Boot Starter
  • Добавлен ключ конфигурации bean-searcher.sql.default-mapping.inherit-type, который позволяет указывать тип наследования сущностей по умолчанию в файлах конфигурации, значение по умолчанию — ALL.
  • Добавлен ключ конфигурации bean-searcher.sql.default-mapping.sort-type, который позволяет указывать тип ограничений сортировки по умолчанию в файлах конфигурации, значение по умолчанию — ALLOW_PARAM.
  • Поддерживается добавление фильтров ResultFilter для BeanSearcher и MapSearcher через Spring Beans.
  • Конфигурируется ключ bean-searcher.sql.dialect, который позволяет указывать диалект PostgreSQL или PgSQL для использования диалекта PostgreSQL.
  • Добавлен ключ конфигурации bean-searcher.field-convertor.use-b2-m, который позволяет указывать активацию конвертора B2MFieldConvertor в файлах конфигурации, значение по умолчанию — false.
Последнее сообщение коммита: CHANGELOG.md
04.03.2025 10:28
GitLife Service Account

✨ Улучшения

  • Bean Searcher Boot Starter: Обновлен Spring Boot до версии 2.6.6

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

  • Исправлено: Для полей типа Boolean, когда при поиске передается пустая строка в качестве значения поля, BoolValueFilter преобразует её в true: https://github.com/ejlchina/bean-searcher/issues/29
Последнее сообщение коммита: CHANGELOG.md
04.03.2025 10:28
GitLife Service Account

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

  • Bean Searcher: в параметрах конструктора добавлены методы field(FieldFn<T, ?> fieldFn, Collection<?> values) и field(String fieldName, Collection<?> values), поддерживающие передачу коллекций значений полей.

✨ Улучшения

  • Bean Searcher Boot Starter: обновлен Spring Boot до версии 2.6.4

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

  • Исправлена проблема использования алиаса поля в ORDER BY, когда это поле отсутствует в SELECT.
Последнее сообщение коммита: CHANGELOG.md
04.03.2025 10:28
GitLife Service Account

✨ Улучшено

  • Улучшение способности к сокращению сложных логических выражений
  • Обновление slf4j-api до версии 1.7.36
Последнее сообщение коммита: Merge branch 'master' into v3.5
04.03.2025 10:28
GitLife Service Account

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

  • Bean Searcher
    • Добавлены компоненты GroupResolver, ExprParser и другие, что позволяет реализовать группировку параметров, логические отношения, вычисление, упрощение и анализ параметров.
      Подробнее: https://gitee.com/ejlchina-zhxu/bean-searcher/issues/I4J229
    • В DefaultParamResolver добавлены свойства gexprName и groupSeparator для указания формы имени группы параметров.
    • В MapBuilder (построитель параметров) добавлен метод group(String group) для создания групп параметров.
    • В MapBuilder добавлен метод groupExpr(String expr) для указания логических отношений между группами параметров.
    • Добавлен конвертор TimeFieldConvertor, поддерживающий преобразование между типами данных java.sql.Time и LocalTime.
    • Аннотация @DbField теперь имеет свойство alias для возможности указания алиаса поля вручную (если не указано, то генерируется автоматически).* Bean Searcher Boot Starter
    • Добавлен ключ конфигурации bean-searcher.params.group.enable, который позволяет указывать использование функции группировки параметров в файле конфигураций, значение по умолчанию — true.
    • Добавлен ключ конфигурации bean-searcher.params.group.expr-name, который позволяет указывать имя группы выражений в файле конфигураций, значение по умолчанию — gexpr.
    • Добавлен ключ конфигурации bean-searcher.params.group.expr-cache-size, который позволяет указывать размер кэша анализа выражений групп в файле конфигураций, значение по умолчанию — 50.
    • Добавлен ключ конфигурации bean-searcher.params.group.separator, который позволяет указывать разделитель групп параметров в файле конфигураций, значение по умолчанию — ..
    • Добавлен ключ конфигурации bean-searcher.field-convertor.use-time, который позволяет указывать автоматическое использование конвертора TimeFieldConvertor, значение по умолчанию — true.
Последнее сообщение коммита: CHANGELOG.md
04.03.2025 10:28
GitLife Service Account

✨ Лучше

  • Поля с встроенными параметрами также могут использоваться в условиях фильтрации.
  • Поля с встроенными параметрами также могут использоваться в статистике полей.
Последнее сообщение коммита: CHANGELOG.md
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