Skip to content

Releases: sagframe/sagacity-sqltoy

5.6.38 增加@fast的sql注释模式进行位置标记

03 Feb 16:47
Compare
Choose a tag to compare

1、增加通过/* @fast_start */ 和 /* @fast_end */代替@fast标记快速分页的开始和结束位置,从而便于sql调试
2、@fast支持@fast (sql) 左括号跟@fast之间存在空格情况的匹配
3、updateSaveFetch支持定义forceUpdateProps

// 支持 -- @fast_start 或 /*@fast_start*/ 两种模式
String sql = """
	select *
	from sqltoy_order_info soi
	where 1=1
        -- @fast_start
	/*@fast_start*/(
	 select * from table1
	 )/*@fast_end*/
       -- @fast_end
	and status=1
	""";
<!-- 其他非spring框架可以基于sagacity-sqltoy 进行扩展 -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy</artifactId>
         <!-- jdk8 对应的版本号为:5.6.38.jre8 -->
	<version>5.6.38</version>
</dependency>

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

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

5.6.37 提供针对同一个字段进行多次翻译或根据具体逻辑条件进行翻译的功能

29 Dec 08:57
2b8b624
Compare
Choose a tag to compare

1、提供针对同一个字段进行多次翻译或根据具体逻辑条件进行翻译的功能

<sql id="sqltoy_complax_trans">
      <!-- where like colName==xxx | colName!=xxx | colName in (a,b) |colName out (a,b) -->
      <translate cache="dictCache" cache-type="purchase_deliver_type" columns="deliver_type" where="order_type==purchase"/>
      <translate cache="dictCache" cache-type="sales_deliver_type" columns="deliver_type" where="order_type==sales"/>
      <value><!CDATA[[
       select order_id,order_type,deliver_type
       from order_info
         ]]>
      </value>
  </sql>

输入图片说明

// 演示基于代码模式的缓存翻译、电话号码脱敏、自定义filter等
Page<StaffInfoVO> result = lightDao.findPageEntity(new Page(), StaffInfoVO.class,
	EntityQuery.create().where("STATUS=1 #[and STAFF_NAME like :staffName]").orderByDesc("ENTRY_DATE")
		.values(new StaffInfoVO().setStaffName("张")).filters(new ParamsFilter("staffName").rlike())
		.translates(new Translate("organIdName").setKeyColumn("organId").setColumn("organName")
		.setCompareColumn("orderType").setCompareType("eq").setCompareValues("PO"))
		.secureMask(MaskType.TEL, "telNo"));
<!-- 其他非spring框架可以基于sagacity-sqltoy 进行扩展 -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy</artifactId>
         <!-- jdk8 对应的版本号为:5.6.37.jre8 -->
	<version>5.6.37</version>
</dependency>

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

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

5.6.34 修复@value(:inField) in (:ids) ids超过1000场景下的缺陷

12 Dec 12:58
ee3fc72
Compare
Choose a tag to compare

1、修复@value(:inField) in (:ids) ids超过1000场景下的缺陷
2、升级solon依赖为3.0.4版本、springboot3.4

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

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

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

5.6.35 修复数据库Blob类型字段值长度为0时场景处理缺陷

25 Dec 15:00
Compare
Choose a tag to compare

1、修复数据库Blob类型字段值长度为0时场景处理缺陷
2、升级solon依赖为3.0.5版本、springboot3.4.1
感谢:@Legendary 的反馈

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

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

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

5.6.33 查询条件in参数值增加去除重复的功能

19 Nov 10:22
537bf49
Compare
Choose a tag to compare

1、增强in条件的参数值去重功能
2、sql查询代替group_concat的link功能支持结果类型为HashSet
3、升级solon依赖为3.0.3版本

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

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

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

5.6.31 分页提取count语句算法优化、日期字符串毫秒、微妙位长度转换兼容

08 Nov 05:02
4551c55
Compare
Choose a tag to compare

1、增强sql自动分页提取count部分sql的算法,兼容最终from前面有非(select from)对称场景:

select field1,(day from(xxx)) as aliase from table 

2、优化DateUtil,对非规范长度的字符串(如:2024-11-07 10:52:36.12345)转LocalDateTime、LocalTime的兼容处理
3、强化opengauss系列getTables方法,表名匹配小写化

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

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

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

5.6.30 增加opengauss、stardb数据库的支持,将vastbase、mogdb改为继承opengauss模式

31 Oct 05:27
d73c693
Compare
Choose a tag to compare

1、增加opengauss、stardb数据库的支持,将vastbase、mogdb改为继承opengauss模式

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

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

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

5.6.30.RC5 增加vastbase、stardb、opengauss数据库的支持

28 Oct 04:42
d73c693
Compare
Choose a tag to compare

1、增加vastbase、stardb、opengauss数据库的支持(将gaussdb拆分出gaussdb和opengauss,vastbase、stardb、gaussdb继承opengauss模式)

5.6.29 增加海量数据库(vastbase)支持,优化个别rs.close行为

24 Oct 13:34
Compare
Choose a tag to compare

1、增加海量数据库(vastbase)支持,默认映射成gaussdb执行
2、分页最大单页记录pageFetchSizeLimit(对应参数:spring.sqltoy.pageFetchSizeLimit)小于0表示不做限制
3、优化个别rs.close()行为,统一放入finally块中处理
4、升级solon3.0.2版本

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

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

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

5.6.28 统一@if/@elseif/@else场景的逻辑

17 Oct 15:43
d247cdd
Compare
Choose a tag to compare

1、规范if/elseif/else的逻辑(历史版本:if场景,sql中无动态参数也会被剔除)

select * from table where name='测试'
-- 非if逻辑场景下,内部动态参数为null,最终为and status=1 也要自动剔除
#[and status=1 #[and type=:type] #[and orderName like :orderName] ]
-- flag==1成立,因为内容存在动态参数,所以继续变成#[and status=:status]参数为null剔除,不为null则保留
#[@if(:flag==1) and status=:status]
-- 成立,因为and status=1 没有动态参数,则保留and status=1
#[@if(:flag==1) and status=1 ]
#[@elseif(:flag==2) and status=2 ]
#[@else and status in (1,2)]
<!-- 其他非spring框架可以基于sagacity-sqltoy 进行扩展 -->
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy</artifactId>
         <!-- jdk8 对应的版本号为:5.6.28.jre8 -->
	<version>5.6.28</version>
</dependency>

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

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