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

OSCHINA-MIRROR/sagacity-sagacity-sqltoy

01.03.2025 08:42
GitLife Service Account

баг, связанный с удалением символов новой строки в SQL-запросах, рекомендовано обновление.

  1. Метод batchUpdate поддерживает режим передачи параметров через List<Map>, а также поддерживает свойства подклассов.
  2. Устранена проблема с удалением символов новой строки в SQL, что приводило к замене оператора || в конструкциях @if().
<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy</artifactId>
    <version>5.1.8</version>
</dependency>
<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy-starter</artifactId>
    <version>5.1.8</version>
</dependency>
Последнее сообщение коммита: 升级
01.03.2025 08:42
GitLife Service Account

queryResult

  1. Устранил проблему с блокировкой db2 updateSaveFetch, заменив её на for update with rs.
  2. Оптимизировал обработку типа данных labelTypes в queryResult (при наличии кэшированного перевода и форматирования данные могут иметь другой тип). Этот тип данных является запасным атрибутом и не влияет на фактический процесс запроса.
  3. Обновил версию зависимых библиотек.
<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy</artifactId>
    <version>5.1.6</version>
</dependency>
<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy-starter</artifactId>
    <version>5.1.6</version>
</dependency>
Последнее сообщение коммита: 更新
01.03.2025 08:42
GitLife Service Account
  1. Добавлен метод findEntity, который позволяет выполнять запросы с использованием объекта entity и возвращать результаты типа dto.
/**
 * Выполняет запрос с использованием объекта entity, но позволяет указывать тип возвращаемого значения
 * @param <T>
 * @param entityClass
 * @param entityQuery
 * @param resultType Указывает тип возвращаемого значения, отличный от pojo
 * @return
 */
public <T> List<T> findEntity(Class<?> entityClass, EntityQuery entityQuery, Class<T> resultType);
  1. Оптимизация процесса генерации основного ключа через IdUtil. Улучшена логика получения serverId по IP адресу, чтобы избежать проблем при отсутствии сетевых адаптеров.
  2. Улучшение вывода SQL-журналов для минимизации лишних пробелов, влияющих на читабельность SQL-запросов.
  3. Усиление способности некоторых SQL-функций автоматически адаптироваться к различным базам данных.
<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy</artifactId>
    <version>4.18.43</version>
</dependency>
<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy-starter</artifactId>
    <version>4.18.43</version>
</dependency>
Последнее сообщение коммита: update README.md.
01.03.2025 08:41
GitLife Service Account
  1. метод findEntity позволяет выполнять поиск с использованием объекта entity, но возвращает результат типа dto.
/**
 * @TODO Выполняет поиск с помощью объекта entity, но тип возвращаемого значения можно указать самостоятельно
 * @param <T>
 * @param entityClass
 * @param entityQuery
 * @param resultType Указывает тип возвращаемого значения, отличный от pojo
 * @return
 */
public <T> List<T> findEntity(Class entityClass, EntityQuery entityQuery, Class<T> resultType);
  1. улучшена производительность генерации основного ключа через IdUtil, оптимизировано получение serverId по IP адресу, что позволяет избежать проблем при отсутствии сетевых адаптеров.

  2. улучшено вывод сообщений SQL-журналов, чтобы минимизировать влияние лишних пробелов на читабельность SQL-запросов.

  3. усилены возможности автоматической адаптации части SQL-функций между различными базами данных.

<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy</artifactId>
    <version>5.1.4</version>
</dependency>
<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy-starter</artifactId>
    <version>5.1.4</version>
</dependency>
Последнее сообщение коммита: update README.md.
01.03.2025 08:41
GitLife Service Account
  1. Добавлено получение информации о таблицах базы данных и её столбцах
// Пример использования: getTableColumns(null, null, "SYS_STAFF_INFO")
public List<ColumnMeta> getTableColumns(final String catalog, final String schema, final String tableName);

// Пример использования: getTables(null, null, "%")
public List<TableMeta> getTables(final String catalog, final String schema, final String tableName);
<dependency>
    <groupId>com.sagframe</groupId>
   bcm artifactId>sagacity-sqltoy</artifactId>
    <version>5.1.3</version>
</dependency>
<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy-starter</artifactId>
    <version>5.1.3</version>
</dependency>
Последнее сообщение коммита: Update 睿智平台SqlToy4.18使用手册.doc
01.03.2025 08:41
GitLife Service Account

сценариях update_save_fetch.

  1. Устранена проблема с багом в сценариях использования составного первичного ключа в методе updateSaveFetch, пропущено условие AND.
  2. Устранена проблема с вставкой при использовании стратегии identity первичного ключа в базе данных SQLite.
  3. Оптимизирован метод saveOrUpdate, добавлено условие, что если значение первичного ключа равно null, то выполняется операция save.

Спасибо за обратную связь от сообщества

<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy</artifactId>
    <version>5.1.2</version>
</dependency>
<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy-starter</artifactId>
    <version>5.1.2</version>
</dependency>
Последнее сообщение коммита: update README.md.
01.03.2025 08:40
GitLife Service Account

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

  1. Для сценариев с высокой концентрацией транзакций и большим количеством параллельных запросов, таких как учёт инвентаря или баланс клиентских средств, рекомендуется использовать метод updateSaveFetch, который выполняет полный цикл операций — проверку наличия записи, обновление данных, вставку новой записи при отсутствии существующей записи и возврат результата за одну базовую операцию взаимодействия с базой данных.

Пример использования:

  • Когда в базе данных нет записей с таким же номером заказа, создаётся новая запись.
  • Если запись уже существует, данные в текущей записи обновляются путём сложения новых значений.
  • Возвращаются обновленные значения.
public TransLedgerVO updateSaveTrans(TransLedgerVO transVO) {
    return sqlToyLazyDao.updateSaveFetch(transVO, new UpdateRowHandler() {
        @Override
	public void updateRow(ResultSet rs, int index) throws Exception {
            // Обычно updateFetch использует существующие значения в таблице для выполнения логики,
            // но если этого не требуется, можно просто обновить данные.
            rs.updateInt("QUANTITY", rs.getInt("QUANTITY") + transVO.getQuantity());
            rs.updateBigDecimal("AMT", rs.getBigDecimal("AMT").add(transVO.getAmt()));
        }
    }, "orderId");
}
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy</artifactId>
	<version>5.1.0</version>
</dependency>
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-starter</artifactId>
	<version>5.1.0</version>
</dependency>

Последнее сообщение коммита: Merge branch '5.0'
01.03.2025 08:40
GitLife Service Account
  1. Добавлена поддержка сценария, когда значение по умолчанию для полей таблиц базы данных пустое (совместимо с версией quickvo-4.18.18)
  2. При выполнении операции delete с каскадным удалением добавлена проверка значения каскадного поля на null (для случаев, когда каскадное поле не является первичным ключом); если значение равно null, выбрасывается исключение незаконной операции
<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy</artifactId>
    <version>5.0.13</version>
</dependency>
<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy-starter</artifactId>
    <version>5.0.13</version>
</dependency>
Последнее сообщение коммита: Merge branch '5.0'
01.03.2025 08:39
GitLife Service Account

в классе NumberUtil при преобразовании чисел в китайскую денежную сумму более одного миллиарда с полностью нулевыми десятками миллионов. 5.0.12 исправлен недостаток в классе NumberUtil при преобразовании чисел в китайскую денежную сумму более одного миллиарда с полностью нулевыми десятками миллионов.

  1. Устранена проблема с нулевыми значениями десятков миллионов при конвертации чисел в китайскую денежную нотацию в классе NumberUtil для сумм, превышающих миллиарды.
  2. В режиме выполнения запросов через HTTP для elastic SQL добавлены @blank(:name) и @value(:name).
<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy</artifactId>
    <version>5.0.12</version>
</dependency>
<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy-starter</artifactId>
    <version>5.0.12</version>
</dependency>
Последнее сообщение коммита: Merge branch '5.0'
01.03.2025 08:39
GitLife Service Account

возникновении ошибки

  1. Оптимизация обработки повторяющихся sqlId, централизованное предупреждение и выход с ошибкой при возникновении异常情况.
  2. Обновление версий зависимых jar-файлов
<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy</artifactId>
    <version>5.0.11</version>
</dependency>
<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy-starter</artifactId>
    <version>5.0.11</version>
</dependency>

Исправлено:

  1. "异常情况" -> "абnormal ситуации"

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

  1. Оптимизация обработки повторяющихся sqlId, централизованное предупреждение и выход с ошибкой при возникновении abnormal ситуаций.
  2. Обновление версий зависимых jar-файлов
<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy</artifactId>
    <version>5.0.11</version>
</dependency>
<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy-starter</artifactId>
    <version>5.0.11</version>
</dependency>
Последнее сообщение коммита: Merge branch '5.0'
01.03.2025 08:39
GitLife Service Account

таблиц.

  1. Добавлена поддержка impalajdbc, в первую очередь интеграция с kudu, что позволяет дополнительно усиливать приложения в рамках работы с большими данными.
  2. В методе findEntity класса EntityQuery добавлены параметры группировки groupBy() и having().
  3. Улучшена поддержка организации SQL запросов для получения верхних записей с использованием нативного SQL в Elasticsearch.
  4. Оптимизирован вывод логов при загрузке sql файлов.
<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy</artifactId>
    <version>4.18.33</version>
</dependency>
<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy-starter</artifactId>
    <version>4.18.33</version>
</dependency>
Последнее сообщение коммита: Merge branch '5.0'
01.03.2025 08:39
GitLife Service Account
  1. Добавлена поддержка impalajdbc, в первую очередь интеграция с kudu, что позволяет дополнительно усиливать приложения в рамках работы с большими данными.
  2. В методе findEntity класса EntityQuery добавлены параметры группировки groupBy() и having().
  3. Улучшена поддержка организации SQL запросов для получения верхних записей с использованием нативного SQL в Elasticsearch.
  4. Оптимизированы логи при загрузке SQL файлов.
<dependency>
    <groupId>com.sagframe</groupId>
   <artifactId>sagacity-sqltoy</artifactId>
    <version>5.0.9</version>
</dependency>
<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy-starter</artifactId>
    <version>5.0.9</version>
</dependency>
Последнее сообщение коммита: Merge branch '5.0'
01.03.2025 08:38
GitLife Service Account
  1. Реализация поддержки преобразования oracle.sql.TIMESTAMP в LocalDateTime для базы данных Oracle
<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy-starter</artifactId>
    <version>5.0.7</version>
</dependency>
<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy-starter</artifactId>
    <version>5.0.7</version>
</dependency>
Последнее сообщение коммита: Merge branch 'master' of https://gitee.com/sagacity/sagacity-sqltoy
01.03.2025 08:38
GitLife Service Account
  1. При первом вызове кэша во время оптимизации запроса не удается распечатать лог SQL-запроса, так как лог SQL находится в текущем потоке, и при вызове кэша он сбрасывает лог текущего потока.
Последнее сообщение коммита: Merge branch '5.0'
01.03.2025 08:38
GitLife Service Account
  1. При первом вызове кэша во время оптимизации запроса не удается распечатать лог SQL-запроса, так как лог SQL находится в текущем потоке, и при вызове кэша он сбрасывает лог текущего потока.
Последнее сообщение коммита: Merge branch '5.0'
01.03.2025 08:38
GitLife Service Account
  1. Исправление проблемы с параллельными запросами при использовании кэша во время пагинации, когда кэш был загружен впервые, что привело к тому, что лог текущего потока был очищен.

Спасибо за обратную связь @念来过倒会比逗

<dependency>
     <groupId>com.sagframe</groupId>
     <artifactId>sagacity-sqltoy-starter</artifactId>
     <version>5.0.5</version>
</dependency>
Последнее сообщение коммита: Merge branch '5.0'
01.03.2025 08:38
GitLife Service Account

вложенных объектов.

  1. Параметры запроса findBySql(String sql, Map paramsMap, Class resultType) поддерживают многоуровневую структуру атрибутов объектов:
String sql = "SELECT * FROM table WHERE id=:staff.id AND name LIKE :staff.name";
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("staff", new StaffInfo().setId("10000").setName("xxxx"));
  1. В классе SqlToyDaoSupport добавлен метод findPageBySql(final Page page, final String sqlOrNamedSql, final Map<String, Object> paramsMap, Class voClass):
public <T> List<T> findPageBySql(Page page, String sqlOrNamedSql, Map<String, Object> paramsMap, Class<T> voClass);
Последнее сообщение коммита: Merge branch '5.0'
01.03.2025 08:38
GitLife Service Account
  1. Параметры запроса findBySql(String sql, Map paramsMap, Class resultType) поддерживают многоуровневую структуру атрибутов объектов:
String sql = "SELECT * FROM table WHERE id=:staff.id AND name LIKE :staff.name";
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("staff", new StaffInfo().setId("10000").setName("xxxx"));
  1. В классе SqlToyDaoSupport добавлен метод findPageBySql(final Page page, final String sqlOrNamedSql, final Map<String, Object> paramsMap, Class voClass):
Последнее сообщение коммита: Merge branch '5.0'
01.03.2025 08:37
GitLife Service Account
  1. Исправлено двойное соединение схемы при генерации оператора UPDATE для POJO с включённой схемой.
Последнее сообщение коммита: 更新
01.03.2025 08:37
GitLife Service Account

sqltoy включает две параллельные версии 5.x и 4.x

  1. Добавлен вывод денежной суммы на английском языке
<number-format columns="total_amt" format="capital-en"/>
  1. В методе findEntity в ParamsFilter добавлен фильтр параметров between.
  2. Установка значений workerId и dataCenterId для снежинкового алгоритма перемещена из SqlToyContext в SqlToyConstants, чтобы сделать код SqlToyContext более простым.
  3. Улучшены комментарии и обновлены зависимости до новых версий.
  4. Исправлена проблема двойного объединения схемы при генерации оператора UPDATE в quickvo при наличии схемы в сгенерированном POJO.
Последнее сообщение коммита: Update SqlToyLazyDao.java
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