Releases: sagframe/sagacity-sqltoy
5.6.22 修复同比环比计算中除数跟零的对比缺陷
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逻辑
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的缺陷
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场景
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 修复项目路径存在空格等特殊符号的场景
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 修复单个查询封装对象层级关系使用注解缓存翻译主对象未翻译的缺陷
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>
5.6.16 强化loadCascade功能增加可设置忽略主表查询、兼容历史版本主键策略类包路径
1、强化级联加载功能,可以通设置onlyCascade,只加载子表
/*
* 演示批量级联加载,忽略主表查询,用于主表事先查询出集合的场景
*/
@Test
public void testLoadAllOnlyCascade() {
List entites = new ArrayList();
entites.add(new ComplexpkHeadVO(LocalDateTime.parse("2020-09-08T12:11:20"), "S0001"));
entites.add(new ComplexpkHeadVO(LocalDateTime.parse("2020-09-08T12:11:20"), "S0002"));
List<ComplexpkHeadVO> heads = lightDao.load().onlyCascade().many(entites);
// 打印级联加载的子表数据
for (ComplexpkHeadVO item : heads) {
System.err.println(JSON.toJSONString(item));
}
}
2、增加兼容历史主键类包路径,便于从4.x版本升级
<!-- 其他非spring框架可以基于sagacity-sqltoy 进行扩展 -->
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy</artifactId>
<!-- jdk8 对应的版本号为:5.6.16.jre8 -->
<version>5.6.16</version>
</dependency>
<!-- springboot -->
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy-spring-starter</artifactId>
<!-- jdk8 对应的版本号为:5.6.16.jre8 -->
<version>5.6.16</version>
</dependency>
<!-- solon 插件 -->
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy-solon-plugin</artifactId>
<!-- jdk8 对应的版本号为:5.6.16.jre8 -->
<version>5.6.16</version>
</dependency>
5.6.14 优化对mogdb的适配,lightDao中增加generateBizId通过redis获取业务主键的方法
1、优化mogdb数据库支持
2、在lightdao中增加generateBizId灵活通过redis产生业务主键
<!-- 其他非spring框架可以基于sagacity-sqltoy 进行扩展 -->
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy</artifactId>
<!-- jdk8 对应的版本号为:5.6.14.jre8 -->
<version>5.6.14</version>
</dependency>
<!-- springboot -->
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy-spring-starter</artifactId>
<!-- jdk8 对应的版本号为:5.6.14.jre8 -->
<version>5.6.14</version>
</dependency>
<!-- solon 插件 -->
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy-solon-plugin</artifactId>
<!-- jdk8 对应的版本号为:5.6.14.jre8 -->
<version>5.6.14</version>
</dependency>
5.6.13 优化多租户隔离saveOrUpdate场景的缺陷
1、优化多租户隔离在saveOrUpdate场景下,sql语句是merge into on () update set ,当在on里面增加了租户条件,update中就不能对该字段进行修改
<!-- 其他非spring框架可以基于sagacity-sqltoy 进行扩展 -->
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy</artifactId>
<!-- jdk8 对应的版本号为:5.6.13.jre8 -->
<version>5.6.13</version>
</dependency>
<!-- springboot -->
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy-spring-starter</artifactId>
<!-- jdk8 对应的版本号为:5.6.13.jre8 -->
<version>5.6.13</version>
</dependency>
<!-- solon 插件 -->
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy-solon-plugin</artifactId>
<!-- jdk8 对应的版本号为:5.6.13.jre8 -->
<version>5.6.13</version>
</dependency>
5.6.12 兼容早期主键策略包路径,优化sql日志定位调用代码位置
1、兼容4.19.x等早期版本pojo中主键策略类包路径,推进老的sqltoy迁移
// 历史id主键策略的包路径,5.x版本开始剔除了兼容处理,2024-7-16日增加兼容处理
private static final String IdGeneratorOldPackage = "org.sagacity.sqltoy.plugin.id.";
private static final String IdGeneratorPackage = "org.sagacity.sqltoy.plugins.id.impl.";
2、优化sql日志输出时定位具体调用的业务代码位置(针对动态代理场景)
<!-- 其他非spring框架可以基于sagacity-sqltoy 进行扩展 -->
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy</artifactId>
<!-- jdk8 对应的版本号为:5.6.12.jre8 -->
<version>5.6.12</version>
</dependency>
<!-- springboot -->
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy-spring-starter</artifactId>
<!-- jdk8 对应的版本号为:5.6.12.jre8 -->
<version>5.6.12</version>
</dependency>
<!-- solon 插件 -->
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy-solon-plugin</artifactId>
<!-- jdk8 对应的版本号为:5.6.12.jre8 -->
<version>5.6.12</version>
</dependency>