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

OSCHINA-MIRROR/sagacity-sagacity-sqltoy

01.03.2025 08:37
GitLife Service Account

основе 4.x.

  1. Упорядочить структуру каталогов версии 4.x для большей логики.
    • Удалить директорию executor и переместить внешние модели QueryExecutor в директорию model.
    • Внутренние модели, не предназначенные для экспорта, переместить в пакет model.inner, а конфигурационные модели — в config.model.
  2. Переименовать PaginationModel в Page и заменить тип данных поля PageNo с Long на long для упрощения записи.
  3. Оптимизировать LinkSupport и BaseSupport в папке support.
    • Удалить LinkSupport и BaseSupport и объединить их в SqlToyDaoSupport.
  4. Удалить методы, которые фактически не используются, чтобы избежать путаницы и сделать SqlToyDao более понятным.
    • Удалить updateFetchTop и updateFetchRandom.
    • Удалить метод executeSql(String sqlOrNamedSql, Serializable entity, ReflectPropsHandler reflectPropertyHandler).
  5. Удалить аннотации @ListSql, @PageSql, @LoadSql для унификации использования методов.
  6. Удалить ObtainDataSource для предотвращения коллизий с DataSourceSelector.
  7. Переместить ConnectionFactory в пакет org.sagacity.sqltoy.plugins.datasource.
  8. Удалить метод findAll и заменить его на findEntity(Class voClass, null).
  9. Изменить метод установки модели страницы pageMode(Pagination pageModel) на page(Page page).
  10. Добавить метод loadEntity для получения одной записи через EntityQuery.
    public <T extends Serializable> T loadEntity(Class<T> entityClass, EntityQuery entityQuery);
    
  11. Добавить поддержку numFmt(numberFormat) для преобразования английских денежных сумм в пропись.
        <number-format columns="total_amt" format="capital-en"/>
    
  12. Удалить поддержку базы данных SybaseIQ.
  13. Оптимизировать незадействованный код и комментарии.

Обновление до версии 5.0

  • Класс PaginationModel переименован в Page.
  • Путь org.sagacity.sqltoy.executor.QueryExecutor изменён на org.sagacity.sqltoy.model.QueryExecutor.
  • Метод findAll(pojo.class) изменён на findEntity(pojo.class, null).
Последнее сообщение коммита: Merge branch 'dev'
01.03.2025 08:36
GitLife Service Account

получения defaultDataSource

  1. Устранена проблема с ошибкой NPP при сохранении таблиц без первичного ключа в Oracle.
  2. Оптимизирован способ получения defaultDataSource для совместимости с плагином dynamic-datasource.
  3. В расширении sqlToyContext добавлена возможность использования ConnectionFactory для реализации механизма получения соединения из ThreadLocal в неприспособленных для Spring сценариях.
  4. Устранены ошибки версии 4.18.24 при настройке defaultDataSource в традиционных проектах Spring (не использующих spring-boot и sagacity-sqltoy-starter).
<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy-starter</artifactId>
    <version>4.18.25</version>
</dependency>
Последнее сообщение коммита: update README.md.
01.03.2025 08:36
GitLife Service Account

ключевым словом.

  1. В методе findEntity можно установить значение fetchSize через EntityQuery.
  2. В конфигурации sqltoyContext можно глобально задать значение fetchSize, например:
    spring.sqltoy.fetchSize=200
    
  3. Опция convertType поддерживает возврат пустого списка при получении пустого входного списка.
  4. Поддержка обработки случаев, когда имя таблицы является ключевым словом базы данных.
spring.sqltoy.reservedWords
<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy-starter</artifactId>
    <version>4.18.22</version>
</dependency>
<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy</artifactId>
    <version>4.18.22</version>
</dependency>
Последнее сообщение коммита: Update 睿智平台SqlToy4.18使用手册.doc
Предпросмотр версии
01.03.2025 08:36
GitLife Service Account
  1. Оптимизация логов выполнения SQL-запросов, разделение ошибочных и таймаут-логов, таймауты переопределены как сообщения уровня warn.
  2. В EntityQuery метода findEntity добавлен вызов distinct().

Спасибо:
@恋上你的心 @尹世武 за указание данных улучшений

Последнее сообщение коммита: Merge branch 'dev'
01.03.2025 08:36
GitLife Service Account
  1. Исправлена ошибка NPP в SQL-запросах Elasticsearch.
  2. Добавлена опция locale для date-format, которая поддерживает форматирование дат на английском и других языках.
  3. Методы пагинации, получения первых записей и случайных записей были унифицированы, чтобы избежать повторного описания в каждом диалекте.
Последнее сообщение коммита: update README.md.
01.03.2025 08:36
GitLife Service Account
  1. Оптимизация wrapTreeTable с использованием имени таблицы schemaTable, то есть при наличии схемы в pojo имя таблицы будет иметь вид schema.xxxx.
  2. В QueryExecutor добавлены операции pivot и unpivot для предоставления разработчикам возможности динамического изменения этих операций.
Последнее сообщение коммита: update README.md.
01.03.2025 08:36
GitLife Service Account

параметрах может присутствовать знак вопроса (?).

  1. Измените порядок обработки @value(), чтобы адаптироваться к специфическим сценариям, где в содержании параметров может присутствовать знак вопроса (?).
Последнее сообщение коммита: update README.md.
01.03.2025 08:36
GitLife Service Account
  1. Устранена проблема с отсутствием удаления одиночных комментариев в некоторых крайних случаях оптимизации SQL.

Спасибо за обратную связь от Чистого Вчера.

Эта проблема возникает только в очень крайних случаях, поэтому обновление можно выбрать по необходимости.

Последнее сообщение коммита: 更新
01.03.2025 08:35
GitLife Service Account

соответствия шаблонов в случае непереведённых данных кэша

  1. Устранена проблема с одиночной строкой SQL-комментария, обеспечено соответствие сценариям с многострочными комментариями.
  2. Исправлена проблема некорректного отображения информации getUpdateCount() для некоторых баз данных.
  3. При работе с кэшированием перевода, если нет подходящего шаблона, логирование не производится.

Благодарность пользователям:

  • Один клинок
  • Программное обеспечение ZHIKE
Последнее сообщение коммита: update README.md.
01.03.2025 08:35
GitLife Service Account

специальных сценариях использования нескольких источников данных.

  1. Добавлен DataSourceSelector для расширяемости при использовании других открытых плагинов, таких как dynamic-datasource, в сценариях с несколькими источниками данных. Обычно конфигурация не требуется.
spring.sqltoy.dataSourceSelector=org.sagacity.sqltoy.plugins.datasource.impl.DefaultDataSourceSelector
Последнее сообщение коммита: Merge branch 'dev'
01.03.2025 08:35
GitLife Service Account
  1. При использовании конструкции with tmp as (@fast(select * from table))) при выборке * from tmp возникает проблема лишних () скобок.

Примечание: Лишние () не влияют на выполнение запроса, но портят визуальное восприятие.

Последнее сообщение коммита: Merge branch 'dev'
01.03.2025 08:35
GitLife Service Account
  1. Оптимизация проверки доступных баз данных в сценариях распределенной БД
Последнее сообщение коммита: Merge branch 'dev'
01.03.2025 08:35
GitLife Service Account
  1. Оптимизация обработки условий SQL: при отсутствии условий удаляем предыдущее условие WHERE 1=1 для более естественного вида запроса.

Этот вариант относится к небольшим детальным улучшениям и может быть выбран для выборочной версий обновленной установки.

Последнее сообщение коммита: Merge branch 'dev'
01.03.2025 08:35
GitLife Service Account
  1. ClickHouse поддерживает операцию UPDATE и оптимизирует DELETE, а также массовое удаление данных.
  2. Поддерживается DorisDB, совместим с версией quickvo 4.18.8.
Последнее сообщение коммита: update README.md.
01.03.2025 08:35
GitLife Service Account

в строки могут быть представлены как объекты, оптимизация обработки составных первичных ключей в методе loadAll

  1. Специфическая ситуация с использованием POJO или DTO, где свойства объекта содержат нижние подчеркивания, например: staff_name и соответствующий метод getStaff_Name().
  2. При выходе за границы диапазона страниц можно настроить, чтобы запрос начинался с первой страницы при превышении лимита: spring.sqltoy.pageOverToFirst по умолчанию установлено значение true.
  3. Возможность преобразования столбцов в строки позволяет отображать результаты в типах данных VO/POJO/map и т.д.
  4. Улучшение логики обработки сценария loadAll с составными первичными ключами и связанными с ними правилами цепочечной загрузки.
Последнее сообщение коммита: update README.md.
01.03.2025 08:34
GitLife Service Account

какие поля не следует выбирать.

  1. В классе EntityQuery добавлена возможность исключать поля из запроса с помощью метода unselect().
    Использование:
    EntityQuery.create().unselect("полеA,полеB") или unselect("полеA","полеB")
  1. В классе EntityQuery методы orderBy(String field) и orderByDesc(String field) были заменены на методы с переменным количеством аргументов orderBy(String... fields) и orderByDesc(String... field).
Последнее сообщение коммита: Merge branch 'dev'
01.03.2025 08:34
GitLife Service Account
  1. Произведена умеренная проверка и оптимизация кода, при этом исправлены некоторые не合理的构造。
  2. Обновлены версии зависимых пакетов. -> Версии зависимых пакетов обновлены.

Точный перевод:

  1. Произведена умеренная проверка и оптимизация кода, при этом исправлены некоторые неразумные конструкции.
  2. Обновлены версии зависимых пакетов. -> Версии зависимых пакетов обновлены.

Финальный текст с исправлениями:

  1. Произведена умеренная проверка и оптимизация кода, при этом исправлены некоторые неразумные конструкции.
  2. Версии зависимых пакетов обновлены.
Последнее сообщение коммита: update README.md.
01.03.2025 08:34
GitLife Service Account
  1. Оптимизация цепочечной операции, сокращение конфигураций цепочки, добавление поддержки типа OneToOne
// Можно самостоятельно определить oneToMany и oneToOne
// fields: указывает текущие поля таблицы (если это одиночное поле связи и является первичным ключом, можно не заполнять)
// mappedFields: указывает поля связанной таблицы
// delete: указывает, следует ли выполнять цепочечное удаление, по умолчанию false (при наличии фактического внешнего ключа quickvo генерирует true)
@OneToOne(fields = {"transDate", "transCode"}, mappedFields = {"transDate", "transId"}, delete = true)
private ComplexpkItemVO complexpkItemVO;
  1. Устранение недостатка в определении SQL в XML, когда несколько параметров number-format и date-format переносятся на новую строку без использования trim.

  2. Оптимизация cache-arg для обратного поиска ключей по имени, замена предыдущего режима совпадения строк на аналогичный режим поиска в базе данных LIKE, что позволяет использовать шаблоны с пробелами, такие как: Китай Сучжоу.

  3. Обновление quickvo для оптимизации цепочечной операции до версии bk.4.18.3.

Последнее сообщение коммита: Update README.md
01.03.2025 08:34
GitLife Service Account
  1. Поддержка SSL режима в Elasticsearch REST клиенте
spring:
    sqltoy:
        # Множество путей разделены запятой
        sqlResourcesDir: classpath:com/sagframe/sqltoy/showcase
        # По умолчанию равно classpath:sqltoy-translate.xml, если значения совпадают, то можно не указывать
        translateConfig: classpath:sqltoy-translate.xml
        # По умолчанию равно false, отладочный режим будет выводить выполняемые SQL запросы, а также автоматически обнаруживать изменения в файлах SQL и перезапускать их
        debug: true
        # Установите используемый по умолчанию datasource (необязательная конфигурация)
        defaultDataSource: dataSource
        # Выводить логи при выполнении SQL более длительное время, чтобы мониторить медленные SQL запросы (необязательная конфигурация: по умолчанию 30 секунд)
        printSqlTimeoutMillis: 300000
        # Конфигурация узлов Elasticsearch
        elastic:
            # По умолчанию первый узел может не быть указан
            defaultId: default
            endpoints[0]:
                id: default
                # Для множества узлов в одном кластере используйте запятую для разделения
                url: https://192.168.56.104:9200
                # Файл сертификата
                # keyStore:
                # Пароль сертификата
                # keyStorePass:
                # По умолчанию jks, можно не указывать
                # keyStoreType: jks
                username: elastic
                password: SagFrame@123
                # Путь к SQL: native: _sql(_xpack/sql); es-sql: _nlpcn/sql; opendistro: _sql
                # Нативный ES SQL не поддерживает пагинацию, рекомендовано использовать другие плагины
                sqlPath: _sql
  1. Адаптация методов JDBC для Elasticsearch (ES не поддерживает /* */ комментарии и пагинацию: count(1) следует заменить на count(*))

Спасибо: отзыв и проверка пользователя Баатара

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

Последнее сообщение коммита: Merge branch 'dev'
01.03.2025 08:33
GitLife Service Account

параметров в объектах VO, содержащих map, при различной регистрозависимости ключей.

  1. Улучшена поддержка различных SQL-плагинов для Elasticsearch.
  2. Оптимизирована передача параметров в VO, содержащих map, с учётом ключей как в верхнем, так и в нижнем регистрах.
  3. Улучшены сообщения логов в backend.
Последнее сообщение коммита: Merge branch 'dev'
1
https://api.gitlife.ru/oschina-mirror/sagacity-sagacity-sqltoy.git
git@api.gitlife.ru:oschina-mirror/sagacity-sagacity-sqltoy.git
oschina-mirror
sagacity-sagacity-sqltoy
sagacity-sagacity-sqltoy