Releases: sagframe/sagacity-sqltoy
5.2.84 优化CTE 语句在sql内部场景分页处理、DateUtil支持毫秒、纳秒格式化
1、优化with t as () 语句不在sql开始位置场景处理,以及优化类似postgre物化CTE语法解析
with t1 (a, b) as NOT MATERIALIZED (select * from table),t2(c,d) as materialized(select name from ta)
2、DateUtil增强对毫秒、纳秒的格式化,同时增强sql日志输出关于LocalDateTime和LocalTime的定制格式
# 默认 yyyy-MM-dd HH:mm:ss,可选auto 或yyyy-MM-dd HH:mm:ss.SSSSSSSSS 或yyyy-MM-dd HH:mm:ss.SSSSSS等
# auto 表示根据纳秒值来自动设定格式
spring.sqltoy.localDateTimeFormat=yyyy-MM-dd HH:mm:ss.SSSSSSSSS
# 默认:HH:mm:ss,可选:auto 或HH:mm:ss.SSSSSSSSS 或 HH:mm:ss.SSS 或 HH:mm:ss.SSSSSS
spring.sqltoy.localTimeFormat=HH:mm:ss.SSSSSSSSS
3、MapperUtil增加PropsMapperConfig来指定只映射哪些属性或排除哪些不映射的属性
/**
* new PropsMapperConfig(ignoreProperties).isIgnore(true))
*/
public static <T extends Serializable> T map(Serializable source, Class<T> resultType,
PropsMapperConfig propsMapperConfig)
4、修复83版本in (?) 参数非数组是单个数字字符串处理缺陷
5.3.57 同步发版
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy</artifactId>
<version>5.2.84</version>
</dependency>
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy-starter</artifactId>
<version>5.2.84</version>
</dependency>
5.2.83 优化ES sql模式的判定,部分jdk17标记为@Deprecated的替换
1、改进elasticsearch sql 模式的查询判定,改为(?i)^select\W+匹配则为sql模式(之前是同时包含select和from不严谨)
2、针对JDK17部分标记为@deprecated的方法进行修改,主要是少量new Double、new Float等
3、升级spring和springboot依赖,5.3.56升级spring-boot3.2,同时适配SpringMongoQuery中的limit(int limit)之前是Integer
5.3.56 同步发版
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy</artifactId>
<version>5.2.83</version>
</dependency>
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy-starter</artifactId>
<version>5.2.83</version>
</dependency>
5.2.82 MapperUtil增加copyProperties,增加dialectMap映射功能
1、MapperUtil增加copyProperties对单个对象和对象集合属性值复制赋值
2、增加spring.sqltoy.dialectMap<String,String>属性,提供将特定数据库方言映射为其它数据库方言执行
如:OSCAR(神通)映射为gaussdb
spring:
sqltoy:
dialectMap:
oscar: gaussdb
3、强化in (:inArg) 当inArg值是一个字符串时的校验,比如值为:"'a','b'" 则是合法的(防止sql注入),可以拼接进sql,否则当一个动态条件参数值pst.setString(index,inArg)
5.3.55 同步发版
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy</artifactId>
<version>5.2.82</version>
</dependency>
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy-starter</artifactId>
<version>5.2.82</version>
</dependency>
5.2.81 条件参数filter处理支持枚举类型
1、条件参数filter处理过程支持枚举类型
2、宏里面的参数支持枚举类型,如@ loop
3、sql日志输出支持枚举类型
5.3.54 同步发版
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy</artifactId>
<version>5.2.81</version>
</dependency>
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy-starter</artifactId>
<version>5.2.81</version>
</dependency>
5.2.79 改进@if,支持@if(:boolFlag)和@if(!:boolFlag)
1、改进sql中if的支持,支持boolean单值场景,即@if(:boolFlag)和@if(!:boolFlag)
5.3.52 同步发版
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy</artifactId>
<version>5.2.79</version>
</dependency>
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy-starter</artifactId>
<version>5.2.79</version>
</dependency>
5.2.78 优化@blank场景下where 1=1 的处理
1、优化@blank场景下where 1=1 的处理
感谢 @俊华 反馈
select * from table where 1=1 #[@blank(:id) and id=:id] #[@blank(:roleId) and role_id=:roleId]
2、针对updateSaveFetch执行update时自动补充公共字段赋值更新(更新人、更新时间字段)
5.3.51 同步 发版
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy</artifactId>
<version>5.2.78</version>
</dependency>
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy-starter</artifactId>
<version>5.2.78</version>
</dependency>
5.2.77 优化环比计算默认值设置
1、优化环比计算默认值设置
感谢 @Aliez 反馈
5.3.50 同步发版
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy</artifactId>
<version>5.2.77</version>
</dependency>
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy-starter</artifactId>
<version>5.2.77</version>
</dependency>
5.2.75 优化分页总记录数的处理
1、优化分页总记录数的处理,两种场景:1)分页优化totalRecord<实际分页记录量,2)分页记录量不足一页且totalRecord>(pageNo-1)*pageSize+rowSize,如totalRecord>17,总记录量应该为17
int rowSize = (queryResult.getRows() != null) ? queryResult.getRows().size(): 0;
long minCount = (queryResult.getPageNo() - 1) * pageSize + rowSize;
// 实际记录量> 总记录数(可能从缓存获取),rowSize<=pageSize 防止关联查询导致单页记录数量扩大
if (minCount > recordCnt && rowSize <= pageSize) {
queryResult.setRecordCount(minCount);
} // 第2页,7条不足一页,total>17,说明total过大不正确
else if (rowSize < pageSize && recordCnt > minCount && minCount >= 0) {
queryResult.setRecordCount(minCount);
} else {
queryResult.setRecordCount(recordCnt);
}
5.3.48同步发版
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy</artifactId>
<version>5.2.75</version>
</dependency>
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy-starter</artifactId>
<version>5.2.75</version>
</dependency>
5.2.74 修复gaussdb sequence主键策略下缺陷
1、修复gaussdb sequence主键策略下缺陷
2、去除SqlUtil中针对sql中部分特殊符号全角转半角的处理
3、分页优化增加了skip-zero-count="true"(默认false)参数,便于缓存中总记录为0时可重新查询获取count
感谢@郁晨 反馈
5.3.47 同步发版
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy</artifactId>
<version>5.2.74</version>
</dependency>
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy-starter</artifactId>
<version>5.2.74</version>
</dependency>
5.2.73 优化updateSaveFetch增强不同数据类型处理
1、优化updateSaveFetch增强不同数据类型处理
感谢@rabbit 在不同数据库下进行验证
5.3.46 同步发版
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy</artifactId>
<version>5.2.73</version>
</dependency>
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy-starter</artifactId>
<version>5.2.73</version>
</dependency>