баг, связанный с удалением символов новой строки в SQL-запросах, рекомендовано обновление.
batchUpdate
поддерживает режим передачи параметров через List<Map>
, а также поддерживает свойства подклассов.||
в конструкциях @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>
queryResult
db2 updateSaveFetch
, заменив её на for update with rs
.labelTypes
в queryResult
(при наличии кэшированного перевода и форматирования данные могут иметь другой тип). Этот тип данных является запасным атрибутом и не влияет на фактический процесс запроса.<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>
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);
IdUtil
. Улучшена логика получения serverId
по IP адресу, чтобы избежать проблем при отсутствии сетевых адаптеров.<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>
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);
улучшена производительность генерации основного ключа через IdUtil
, оптимизировано получение serverId
по IP адресу, что позволяет избежать проблем при отсутствии сетевых адаптеров.
улучшено вывод сообщений SQL-журналов, чтобы минимизировать влияние лишних пробелов на читабельность SQL-запросов.
усилены возможности автоматической адаптации части 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>
// Пример использования: 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_save_fetch.
updateSaveFetch
, пропущено условие AND
.identity
первичного ключа в базе данных SQLite.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>
данных, выполнение обновления, вставку при отсутствии записи и возврат результата.
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>
<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>
в классе NumberUtil при преобразовании чисел в китайскую денежную сумму более одного миллиарда с полностью нулевыми десятками миллионов. 5.0.12 исправлен недостаток в классе NumberUtil при преобразовании чисел в китайскую денежную сумму более одного миллиарда с полностью нулевыми десятками миллионов.
<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>
возникновении ошибки
<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>
Исправлено:
Полный текст с исправлениями:
<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>
таблиц.
<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>
<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>
<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>
Спасибо за обратную связь @念来过倒会比逗
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy-starter</artifactId>
<version>5.0.5</version>
</dependency>
вложенных объектов.
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"));
public <T> List<T> findPageBySql(Page page, String sqlOrNamedSql, Map<String, Object> paramsMap, Class<T> voClass);
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"));
sqltoy включает две параллельные версии 5.x и 4.x
<number-format columns="total_amt" format="capital-en"/>
findEntity
в ParamsFilter
добавлен фильтр параметров between
.workerId
и dataCenterId
для снежинкового алгоритма перемещена из SqlToyContext
в SqlToyConstants
, чтобы сделать код SqlToyContext
более простым.UPDATE
в quickvo
при наличии схемы в сгенерированном POJO.