Skip to content

Releases: sagframe/sagacity-sqltoy

5.6.26.RC3 对批量操作支持并行执行机制,提升性能、支持if、elseif、else逻辑

03 Oct 18:36
Compare
Choose a tag to compare

1、针对batchUpdate、saveAll、updateAll、saveOrUpdateAll、loadAll等批量操作,针对超大数据集场景提供并行执行机制

@Test
public void testDeleteAll() {
    List entites = new ArrayList();
    for (int i = 1; i < 3000; i++) {
        entites.add(new ComplexpkHeadVO(LocalDateTime.parse("2020-09-08T12:11:20"), "S000" + i));
    }
    // 最小1000作为一个并行分组,并行度10、最大等待时间120秒
    lightDao.delete().parallelConfig(ParallelConfig.create().groupSize(1000)
    .maxThreads(10).maxWaitSeconds(120)).many(entites);
    //批量修改		 
    //lightDao.update().parallelConfig(ParallelConfig.create().groupSize(1000)).many(entites);
    //批量保存
    //lightDao.save().parallelConfig(ParallelConfig.create().groupSize(1000)).many(entites);  		  
    //批量saveOrUpdate,saveMode(SaveMode.UPDATE)存在则修改
    //lightDao.save().saveMode(SaveMode.UPDATE).parallelConfig(ParallelConfig.create()
    // .groupSize(1000)).many(entites);
}

2、sql支持if\elseif\else 逻辑

String sql = """
	select * from table where name=1
	#[@if(:flag==1) and #[status=:status]]
	#[@elseif(:flag==2) and name like :name]
	#[@else and orderType=:orderType]
	""";
SqlToyResult result = SqlConfigParseUtils.processSql(sql,
new String[] { "flag", "status", "name", "orderType" }, new Object[] { 1, 1, "张", "SALE" });

5.6.25 save操作传递主键值时sequence主键策略主动调整为assgin,避免sequence跳号

28 Sep 02:49
Compare
Choose a tag to compare

1、save操作增加判断主键值不为空时,且是sequence主键策略则主动调整为assgin,避免sequence跳号
2、batchUpdate、executeSql操作时,增加判断sql是否是merge into 且方言是sqlserver,帮助自动补充分号结尾(sqlserver merge into 必须是;结尾)
3、完善代码注释以及变更日志,增强代码可理解性和变更原因
4、升级pom第三方组件的依赖版本

<!-- 其他非spring框架可以基于sagacity-sqltoy 进行扩展 -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy</artifactId>
         <!-- jdk8 对应的版本号为:5.6.25.jre8 -->
	<version>5.6.25</version>
</dependency>

<!-- springboot  -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-spring-starter</artifactId>
         <!-- jdk8 对应的版本号为:5.6.25.jre8 -->
	<version>5.6.25</version>
</dependency>

<!-- solon 插件  -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-solon-plugin</artifactId>
        <!-- jdk8 对应的版本号为:5.6.25.jre8 -->
	<version>5.6.25</version>
</dependency>

5.6.24 @if()增加exclude,deleteAll 底层改为in (idList)

26 Sep 06:01
8cec105
Compare
Choose a tag to compare

1、增加 @if (:param exclude xxx)逻辑(include的取反)
2、优化deleteAll底层逻辑,改为delete from table id in (:ids),复合主键为: (code,type) in ((:codes,:types)),提升效率
3、优化loadAll级联加载,复合主键支持select * from table (id,code) in ((x1,x2),(x11,x22)) 多字段in模式,提升效率

<!-- 其他非spring框架可以基于sagacity-sqltoy 进行扩展 -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy</artifactId>
         <!-- jdk8 对应的版本号为:5.6.24.jre8 -->
	<version>5.6.24</version>
</dependency>

<!-- springboot  -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-spring-starter</artifactId>
         <!-- jdk8 对应的版本号为:5.6.24.jre8 -->
	<version>5.6.24</version>
</dependency>

<!-- solon 插件  -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-solon-plugin</artifactId>
        <!-- jdk8 对应的版本号为:5.6.24.jre8 -->
	<version>5.6.24</version>
</dependency>

5.6.23 修复@fast( @include("sqlId") ) 场景缺陷

19 Sep 14:11
Compare
Choose a tag to compare

1、修复@fast( @include("sqlId") ) 场景缺陷
2、强化where #[field1=:field1Value and] field2=:field2Value 场景sql处理缺陷

where #[field1=:field1Value and] field2=:field2Value
变成了
where 1=1 field2=:field2Value 
<!-- 其他非spring框架可以基于sagacity-sqltoy 进行扩展 -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy</artifactId>
         <!-- jdk8 对应的版本号为:5.6.23.jre8 -->
	<version>5.6.23</version>
</dependency>

<!-- springboot  -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-spring-starter</artifactId>
         <!-- jdk8 对应的版本号为:5.6.23.jre8 -->
	<version>5.6.23</version>
</dependency>

<!-- solon 插件  -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-solon-plugin</artifactId>
        <!-- jdk8 对应的版本号为:5.6.23.jre8 -->
	<version>5.6.23</version>
</dependency>

5.6.22 修复同比环比计算中除数跟零的对比缺陷

30 Aug 07:48
Compare
Choose a tag to compare

1、修复同比环比计算中除数跟零的对比缺陷(BigDeciaml("0.00") 不等于BigDeciaml.ZERO)

divedValue.equals(BigDeciaml.ZERO) 改为:divedValue.compareTo(BigDeciaml.ZERO)==0
<!-- 其他非spring框架可以基于sagacity-sqltoy 进行扩展 -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy</artifactId>
        <!-- jdk8 对应的版本号为:5.6.22.jre8 -->
	<version>5.6.22</version>
</dependency>

<!-- springboot  -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-spring-starter</artifactId>
        <!-- jdk8 对应的版本号为:5.6.22.jre8 -->
	<version>5.6.22</version>
</dependency>

<!-- solon 插件  -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-solon-plugin</artifactId>
        <!-- jdk8 对应的版本号为:5.6.22.jre8 -->
	<version>5.6.22</version>
</dependency>

5.6.21 修复跨数据库适配Nvl函数,排除coalesce匹配,coalesce各种数据库都支持且非单纯的ifnull/nvl逻辑

29 Aug 01:31
Compare
Choose a tag to compare

1、修复跨数据库适配Nvl函数,排除coalesce匹配,coalesce各种数据库都支持且非单纯的ifnull/nvl逻辑

<!-- 其他非spring框架可以基于sagacity-sqltoy 进行扩展 -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy</artifactId>
        <!-- jdk8 对应的版本号为:5.6.21.jre8 -->
	<version>5.6.21</version>
</dependency>

<!-- springboot  -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-spring-starter</artifactId>
        <!-- jdk8 对应的版本号为:5.6.21.jre8 -->
	<version>5.6.21</version>
</dependency>

<!-- solon 插件  -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-solon-plugin</artifactId>
        <!-- jdk8 对应的版本号为:5.6.21.jre8 -->
	<version>5.6.21</version>
</dependency>

5.6.20 修复单个查询封装成对象层级关系未设置notNullField的缺陷

16 Aug 15:17
d76c97a
Compare
Choose a tag to compare

1、修复单个查询封装成非POJO对象层级关系时,未设置notNullField的缺陷
2、postgresql identity主键策略,POJO字段名称为大写时,save操作返回主键值时,默认设置主键字段名为小写

# 正常无需设置
# 可通过参数设置,默认postgresql是小写(在产品化项目,Oracle下生成pojo,字段大写,再运行于postgresql环境)
spring:
    sqltoy:
       dialectReturnPrimaryColumnCase:
                             postgresql: lower
<!-- 其他非spring框架可以基于sagacity-sqltoy 进行扩展 -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy</artifactId>
        <!-- jdk8 对应的版本号为:5.6.20.jre8 -->
	<version>5.6.20</version>
</dependency>

<!-- springboot  -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-spring-starter</artifactId>
        <!-- jdk8 对应的版本号为:5.6.20.jre8 -->
	<version>5.6.20</version>
</dependency>

<!-- solon 插件  -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-solon-plugin</artifactId>
        <!-- jdk8 对应的版本号为:5.6.20.jre8 -->
	<version>5.6.20</version>
</dependency>

5.6.19 优化oracle主键策略为identity场景

14 Aug 14:56
Compare
Choose a tag to compare

1、优化oracle主键策略是identity时,取默认值(如sys_guid())处理错误
2、增加基于redis业务主键策略,定义规则所依赖属性名编写错误时的提示,便于开发定位问题

<!-- 其他非spring框架可以基于sagacity-sqltoy 进行扩展 -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy</artifactId>
        <!-- jdk8 对应的版本号为:5.6.19.jre8 -->
	<version>5.6.19</version>
</dependency>

<!-- springboot  -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-spring-starter</artifactId>
        <!-- jdk8 对应的版本号为:5.6.19.jre8 -->
	<version>5.6.19</version>
</dependency>

<!-- solon 插件  -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-solon-plugin</artifactId>
        <!-- jdk8 对应的版本号为:5.6.19.jre8 -->
	<version>5.6.19</version>
</dependency>

5.6.18 修复项目路径存在空格等特殊符号的场景

10 Aug 04:03
Compare
Choose a tag to compare

1、修复项目部署运行路径的文件夹名称存在空格、百分号等特殊符号的场景
2、优化where(id,type)in (:list.id,:list.type) 条件都为null场景sql语法纠正为(id,type) in ((null,null))

感谢: 原骅的反馈和问题跟踪发现、rabbit的修复和测试

<!-- 其他非spring框架可以基于sagacity-sqltoy 进行扩展 -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy</artifactId>
        <!-- jdk8 对应的版本号为:5.6.18.jre8 -->
	<version>5.6.18</version>
</dependency>

<!-- springboot  -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-spring-starter</artifactId>
        <!-- jdk8 对应的版本号为:5.6.18.jre8 -->
	<version>5.6.18</version>
</dependency>

<!-- solon 插件  -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-solon-plugin</artifactId>
        <!-- jdk8 对应的版本号为:5.6.18.jre8 -->
	<version>5.6.18</version>
</dependency>

5.6.17 修复单个查询封装对象层级关系使用注解缓存翻译主对象未翻译的缺陷

08 Aug 02:22
fade131
Compare
Choose a tag to compare

1、修复单个查询封装对象层级关系使用注解缓存翻译主对象未翻译的缺陷
2、优化updateSaveFetch uniqueFields对应值为null,sql条件应该为 field is null 而非field=null

<!-- 其他非spring框架可以基于sagacity-sqltoy 进行扩展 -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy</artifactId>
        <!-- jdk8 对应的版本号为:5.6.17.jre8 -->
	<version>5.6.17</version>
</dependency>

<!-- springboot  -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-spring-starter</artifactId>
        <!-- jdk8 对应的版本号为:5.6.17.jre8 -->
	<version>5.6.17</version>
</dependency>

<!-- solon 插件  -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-solon-plugin</artifactId>
        <!-- jdk8 对应的版本号为:5.6.17.jre8 -->
	<version>5.6.17</version>
</dependency>